终端 I/O
终端 I/O
Section titled “终端 I/O”为 CLI 应用程序读取 stdin 和写入 stdout/stderr。
local io = require("io")写入 Stdout
Section titled “写入 Stdout”将字符串写入 stdout(不带换行符):
local ok, err = io.write("text", "more")| 参数 | 类型 | 描述 |
|---|---|---|
... | any | 要写入的可变数量值(强制转换为 string) |
返回: boolean, error
带换行符打印
Section titled “带换行符打印”将值写入 stdout,值之间用制表符分隔,末尾添加换行符:
io.print("value1", "value2", 123)| 参数 | 类型 | 描述 |
|---|---|---|
... | any | 要打印的可变数量值 |
返回: boolean, error
写入 Stderr
Section titled “写入 Stderr”将值写入 stderr,值之间用制表符分隔,末尾添加换行符:
io.eprint("Error:", message)| 参数 | 类型 | 描述 |
|---|---|---|
... | any | 要打印的可变数量值 |
返回: boolean, error
从 stdin 读取最多 n 个字节:
local data, err = io.read(1024)| 参数 | 类型 | 描述 |
|---|---|---|
n | integer | 要读取的字节数(默认:1024,<= 0 的值变为 1024) |
返回: string, error
从 stdin 读取一行直到换行符:
local line, err = io.readline()返回: string, error
启用或禁用原始终端模式(禁用行缓冲和回显):
local ok, err = io.raw(true) -- 启用local ok, err = io.raw(false) -- 禁用| 参数 | 类型 | 描述 |
|---|---|---|
enable | boolean | true 启用,false 禁用(默认: true) |
返回: boolean, error
原始模式使用引用计数 — 每个 io.raw(true) 必须由 io.raw(false) 匹配。进程退出时终端自动重置为正常模式。
刷新 stdout 缓冲区:
local ok, err = io.flush()返回: boolean, error
获取命令行参数:
local args = io.args()返回: string[]
| 条件 | 类型 | 可重试 |
|---|---|---|
| 无终端上下文 | errors.UNAVAILABLE | 否 |
| 写操作失败 | errors.INTERNAL | 否 |
| 读操作失败 | errors.INTERNAL | 否 |
| 刷新操作失败 | errors.INTERNAL | 否 |
错误处理请参阅 错误处理。