Terminal-I/O
Terminal-I/O
Abschnitt betitelt „Terminal-I/O“Lesen von stdin und Schreiben zu stdout/stderr für CLI-Anwendungen.
local io = require("io")Schreiben zu Stdout
Abschnitt betitelt „Schreiben zu Stdout“Schreibt Strings zu stdout ohne Zeilenumbruch:
local ok, err = io.write("text", "more")| Parameter | Typ | Beschreibung |
|---|---|---|
... | any | Variable Anzahl von Werten zum Schreiben (zu string gecastet) |
Gibt zurück: boolean, error
Print mit Zeilenumbruch
Abschnitt betitelt „Print mit Zeilenumbruch“Schreibt Werte zu stdout mit Tabs dazwischen und Zeilenumbruch am Ende:
io.print("value1", "value2", 123)| Parameter | Typ | Beschreibung |
|---|---|---|
... | any | Variable Anzahl von Werten zum Ausgeben |
Gibt zurück: boolean, error
Schreiben zu Stderr
Abschnitt betitelt „Schreiben zu Stderr“Schreibt Werte zu stderr mit Tabs dazwischen und Zeilenumbruch am Ende:
io.eprint("Error:", message)| Parameter | Typ | Beschreibung |
|---|---|---|
... | any | Variable Anzahl von Werten zum Ausgeben |
Gibt zurück: boolean, error
Bytes lesen
Abschnitt betitelt „Bytes lesen“Liest bis zu n Bytes von stdin:
local data, err = io.read(1024)| Parameter | Typ | Beschreibung |
|---|---|---|
n | integer | Anzahl der zu lesenden Bytes (Standard: 1024, Werte <= 0 werden zu 1024) |
Gibt zurück: string, error
Zeile lesen
Abschnitt betitelt „Zeile lesen“Liest eine Zeile von stdin bis zum Zeilenumbruch:
local line, err = io.readline()Gibt zurück: string, error
Raw-Modus
Abschnitt betitelt „Raw-Modus“Aktiviert oder deaktiviert den Raw-Terminal-Modus (deaktiviert Zeilenpufferung und Echo):
local ok, err = io.raw(true) -- aktivierenlocal ok, err = io.raw(false) -- deaktivieren| Parameter | Typ | Beschreibung |
|---|---|---|
enable | boolean | true 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.
Ausgabe flushen
Abschnitt betitelt „Ausgabe flushen“Flusht den stdout-Puffer:
local ok, err = io.flush()Gibt zurück: boolean, error
Kommandozeilenargumente
Abschnitt betitelt „Kommandozeilenargumente“Holt Kommandozeilenargumente:
local args = io.args()Gibt zurück: string[]
| Bedingung | Art | Wiederholbar |
|---|---|---|
| Kein Terminal-Kontext | errors.UNAVAILABLE | nein |
| Schreiboperation fehlgeschlagen | errors.INTERNAL | nein |
| Leseoperation fehlgeschlagen | errors.INTERNAL | nein |
| Flush-Operation fehlgeschlagen | errors.INTERNAL | nein |
Siehe Fehlerbehandlung für die Arbeit mit Fehlern.