ターミナル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 | 書き込む可変数の値(文字列に変換される) |
戻り値: boolean, error
改行付きPrint
Section titled “改行付きPrint”値をタブ区切りで末尾に改行付きでstdoutに書き込み:
io.print("value1", "value2", 123)| パラメータ | 型 | 説明 |
|---|---|---|
... | any | 出力する可変数の値 |
戻り値: boolean, error
Stderrへの書き込み
Section titled “Stderrへの書き込み”値をタブ区切りで末尾に改行付きでstderrに書き込み:
io.eprint("Error:", message)| パラメータ | 型 | 説明 |
|---|---|---|
... | any | 出力する可変数の値 |
戻り値: boolean, error
バイトの読み取り
Section titled “バイトの読み取り”stdinから最大nバイトを読み取り:
local data, err = io.read(1024)| パラメータ | 型 | 説明 |
|---|---|---|
n | integer | 読み取るバイト数(デフォルト: 1024、0以下は1024になる) |
戻り値: string, error
行の読み取り
Section titled “行の読み取り”stdinから改行までの1行を読み取り:
local line, err = io.readline()戻り値: string, error
Rawモード
Section titled “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) が必要です。プロセス終了時に端末は自動的に通常モードにリセットされます。
出力のフラッシュ
Section titled “出力のフラッシュ”stdoutバッファをフラッシュ:
local ok, err = io.flush()戻り値: boolean, error
コマンドライン引数
Section titled “コマンドライン引数”コマンドライン引数を取得:
local args = io.args()戻り値: string[]
| 条件 | 種別 | 再試行可能 |
|---|---|---|
| ターミナルコンテキストがない | errors.UNAVAILABLE | no |
| 書き込み操作失敗 | errors.INTERNAL | no |
| 読み取り操作失敗 | errors.INTERNAL | no |
| フラッシュ操作失敗 | errors.INTERNAL | no |
エラーの処理についてはエラー処理を参照。