Terminal I/O
Terminal I/O
Seção intitulada “Terminal I/O”Leia de stdin e escreva para stdout/stderr para aplicacoes CLI.
Carregamento
Seção intitulada “Carregamento”local io = require("io")Escrevendo em Stdout
Seção intitulada “Escrevendo em Stdout”Escrever strings para stdout sem newline:
local ok, err = io.write("text", "more")| Parâmetro | Tipo | Descrição |
|---|---|---|
... | any | Numero variavel de valores para escrever (convertidos para string) |
Retorna: boolean, error
Print com Newline
Seção intitulada “Print com Newline”Escrever valores para stdout com tabs entre e newline no final:
io.print("value1", "value2", 123)| Parâmetro | Tipo | Descrição |
|---|---|---|
... | any | Numero variavel de valores para imprimir |
Retorna: boolean, error
Escrevendo em Stderr
Seção intitulada “Escrevendo em Stderr”Escrever valores para stderr com tabs entre e newline no final:
io.eprint("Error:", message)| Parâmetro | Tipo | Descrição |
|---|---|---|
... | any | Numero variavel de valores para imprimir |
Retorna: boolean, error
Lendo Bytes
Seção intitulada “Lendo Bytes”Ler até n bytes de stdin:
local data, err = io.read(1024)| Parâmetro | Tipo | Descrição |
|---|---|---|
n | integer | Numero de bytes para ler (padrão: 1024, valores <= 0 se tornam 1024) |
Retorna: string, error
Lendo uma Linha
Seção intitulada “Lendo uma Linha”Ler uma linha de stdin até newline:
local line, err = io.readline()Retorna: string, error
Modo Raw
Seção intitulada “Modo Raw”Habilita ou desabilita o modo raw do terminal (desabilita buffering por linha e eco):
local ok, err = io.raw(true) -- habilitarlocal ok, err = io.raw(false) -- desabilitar| Parâmetro | Tipo | Descrição |
|---|---|---|
enable | boolean | true 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 de Saida
Seção intitulada “Flush de Saida”Flush do buffer de stdout:
local ok, err = io.flush()Retorna: boolean, error
Argumentos de Linha de Comando
Seção intitulada “Argumentos de Linha de Comando”Obter argumentos de linha de comando:
local args = io.args()Retorna: string[]
| Condição | Tipo | Retentável |
|---|---|---|
| Sem contexto de terminal | errors.UNAVAILABLE | não |
| Operação de escrita falhou | errors.INTERNAL | não |
| Operação de leitura falhou | errors.INTERNAL | não |
| Operação de flush falhou | errors.INTERNAL | não |
Veja Error Handling para trabalhar com erros.