Zum Inhalt springen

Terminal-I/O

Lesen von stdin und Schreiben zu stdout/stderr für CLI-Anwendungen.

Dieses Modul funktioniert nur im Terminal-Kontext. Sie können es nicht aus regularen Funktionen verwenden—nur aus Prozessen, die auf einem Terminal-Host laufen.
local io = require("io")

Schreibt Strings zu stdout ohne Zeilenumbruch:

local ok, err = io.write("text", "more")
ParameterTypBeschreibung
...anyVariable Anzahl von Werten zum Schreiben (zu string gecastet)

Gibt zurück: boolean, error

Schreibt Werte zu stdout mit Tabs dazwischen und Zeilenumbruch am Ende:

io.print("value1", "value2", 123)
ParameterTypBeschreibung
...anyVariable Anzahl von Werten zum Ausgeben

Gibt zurück: boolean, error

Schreibt Werte zu stderr mit Tabs dazwischen und Zeilenumbruch am Ende:

io.eprint("Error:", message)
ParameterTypBeschreibung
...anyVariable Anzahl von Werten zum Ausgeben

Gibt zurück: boolean, error

Liest bis zu n Bytes von stdin:

local data, err = io.read(1024)
ParameterTypBeschreibung
nintegerAnzahl der zu lesenden Bytes (Standard: 1024, Werte <= 0 werden zu 1024)

Gibt zurück: string, error

Liest eine Zeile von stdin bis zum Zeilenumbruch:

local line, err = io.readline()

Gibt zurück: string, error

Aktiviert oder deaktiviert den Raw-Terminal-Modus (deaktiviert Zeilenpufferung und Echo):

local ok, err = io.raw(true) -- aktivieren
local ok, err = io.raw(false) -- deaktivieren
ParameterTypBeschreibung
enablebooleantrue zum Aktivieren, false zum Deaktivieren (Standard: true)

Gibt zurueck: boolean, error

Der Raw-Modus ist referenzgezaehlt — jedes io.raw(true) muss durch ein io.raw(false) ausgeglichen werden. Das Terminal wird beim Prozessende automatisch in den Normalmodus zurueckgesetzt.

Flusht den stdout-Puffer:

local ok, err = io.flush()

Gibt zurück: boolean, error

Holt Kommandozeilenargumente:

local args = io.args()

Gibt zurück: string[]

BedingungArtWiederholbar
Kein Terminal-Kontexterrors.UNAVAILABLEnein
Schreiboperation fehlgeschlagenerrors.INTERNALnein
Leseoperation fehlgeschlagenerrors.INTERNALnein
Flush-Operation fehlgeschlagenerrors.INTERNALnein

Siehe Fehlerbehandlung für die Arbeit mit Fehlern.