Pular para o conteúdo

Terminal I/O

Leia de stdin e escreva para stdout/stderr para aplicacoes CLI.

Este módulo so funciona dentro de contexto de terminal. Voce não pode usa-lo de funções regulares - apenas de processos rodando em um Terminal Host.
local io = require("io")

Escrever strings para stdout sem newline:

local ok, err = io.write("text", "more")
ParâmetroTipoDescrição
...anyNumero variavel de valores para escrever (convertidos para string)

Retorna: boolean, error

Escrever valores para stdout com tabs entre e newline no final:

io.print("value1", "value2", 123)
ParâmetroTipoDescrição
...anyNumero variavel de valores para imprimir

Retorna: boolean, error

Escrever valores para stderr com tabs entre e newline no final:

io.eprint("Error:", message)
ParâmetroTipoDescrição
...anyNumero variavel de valores para imprimir

Retorna: boolean, error

Ler até n bytes de stdin:

local data, err = io.read(1024)
ParâmetroTipoDescrição
nintegerNumero de bytes para ler (padrão: 1024, valores <= 0 se tornam 1024)

Retorna: string, error

Ler uma linha de stdin até newline:

local line, err = io.readline()

Retorna: string, error

Habilita ou desabilita o modo raw do terminal (desabilita buffering por linha e eco):

local ok, err = io.raw(true) -- habilitar
local ok, err = io.raw(false) -- desabilitar
ParâmetroTipoDescrição
enablebooleantrue para habilitar, false para desabilitar (padrão: true)

Retorna: boolean, error

O modo raw usa contagem de referências — cada io.raw(true) deve ser pareado com um io.raw(false). O terminal é automaticamente redefinido para o modo normal ao sair do processo.

Flush do buffer de stdout:

local ok, err = io.flush()

Retorna: boolean, error

Obter argumentos de linha de comando:

local args = io.args()

Retorna: string[]

CondiçãoTipoRetentável
Sem contexto de terminalerrors.UNAVAILABLEnão
Operação de escrita falhouerrors.INTERNALnão
Operação de leitura falhouerrors.INTERNALnão
Operação de flush falhouerrors.INTERNALnão

Veja Error Handling para trabalhar com erros.