Терминальный ввод/вывод
Терминальный ввод/вывод
Заголовок раздела «Терминальный ввод/вывод»Чтение из stdin и запись в stdout/stderr для CLI-приложений.
Загрузка
Заголовок раздела «Загрузка»local io = require("io")Запись в Stdout
Заголовок раздела «Запись в Stdout»Запись строк в stdout без перевода строки:
local ok, err = io.write("text", "more")| Параметр | Тип | Описание |
|---|---|---|
... | any | Переменное количество значений для записи (приводятся к строке) |
Возвращает: boolean, error
Вывод с переводом строки
Заголовок раздела «Вывод с переводом строки»Запись значений в stdout с табуляцией между ними и переводом строки в конце:
io.print("value1", "value2", 123)| Параметр | Тип | Описание |
|---|---|---|
... | any | Переменное количество значений для вывода |
Возвращает: boolean, error
Запись в Stderr
Заголовок раздела «Запись в Stderr»Запись значений в stderr с табуляцией между ними и переводом строки в конце:
io.eprint("Error:", message)| Параметр | Тип | Описание |
|---|---|---|
... | any | Переменное количество значений для вывода |
Возвращает: boolean, error
Чтение байтов
Заголовок раздела «Чтение байтов»Прочитать до n байт из stdin:
local data, err = io.read(1024)| Параметр | Тип | Описание |
|---|---|---|
n | integer | Количество байт для чтения (по умолчанию: 1024, значения <= 0 становятся 1024) |
Возвращает: string, error
Чтение строки
Заголовок раздела «Чтение строки»Прочитать строку из stdin до символа новой строки:
local line, err = io.readline()Возвращает: string, error
Raw-режим
Заголовок раздела «Raw-режим»Включить или отключить raw-режим терминала (отключает построчную буферизацию и эхо):
local ok, err = io.raw(true) -- включитьlocal ok, err = io.raw(false) -- отключить| Параметр | Тип | Описание |
|---|---|---|
enable | boolean | true для включения, false для отключения (по умолчанию: true) |
Возвращает: boolean, error
Raw-режим использует подсчёт ссылок — каждому io.raw(true) должен соответствовать io.raw(false). Терминал автоматически возвращается в нормальный режим при выходе процесса.
Сброс буфера
Заголовок раздела «Сброс буфера»Сбросить буфер stdout:
local ok, err = io.flush()Возвращает: boolean, error
Аргументы командной строки
Заголовок раздела «Аргументы командной строки»Получить аргументы командной строки:
local args = io.args()Возвращает: string[]
| Условие | Kind | Повторяемо |
|---|---|---|
| Нет терминального контекста | errors.UNAVAILABLE | нет |
| Ошибка операции записи | errors.INTERNAL | нет |
| Ошибка операции чтения | errors.INTERNAL | нет |
| Ошибка операции сброса | errors.INTERNAL | нет |
См. Обработка ошибок для работы с ошибками.