コンテンツにスキップ

ターミナルI/O

CLIアプリケーション用のstdinからの読み取りとstdout/stderrへの書き込み。

このモジュールはターミナルコンテキスト内でのみ動作。通常の関数からは使用できず、ターミナルホストで実行されているプロセスからのみ使用可能。
local io = require("io")

改行なしでstdoutに文字列を書き込み:

local ok, err = io.write("text", "more")
パラメータ説明
...any書き込む可変数の値(文字列に変換される)

戻り値: boolean, error

値をタブ区切りで末尾に改行付きでstdoutに書き込み:

io.print("value1", "value2", 123)
パラメータ説明
...any出力する可変数の値

戻り値: boolean, error

値をタブ区切りで末尾に改行付きでstderrに書き込み:

io.eprint("Error:", message)
パラメータ説明
...any出力する可変数の値

戻り値: boolean, error

stdinから最大nバイトを読み取り:

local data, err = io.read(1024)
パラメータ説明
ninteger読み取るバイト数(デフォルト: 1024、0以下は1024になる)

戻り値: string, error

stdinから改行までの1行を読み取り:

local line, err = io.readline()

戻り値: string, error

Raw端末モードを有効化または無効化します(行バッファリングとエコーを無効化):

local ok, err = io.raw(true) -- 有効化
local ok, err = io.raw(false) -- 無効化
パラメータ説明
enablebooleantrue で有効化、false で無効化(デフォルト: true

戻り値: boolean, error

Rawモードは参照カウント方式 — 各 io.raw(true) には対応する io.raw(false) が必要です。プロセス終了時に端末は自動的に通常モードにリセットされます。

stdoutバッファをフラッシュ:

local ok, err = io.flush()

戻り値: boolean, error

コマンドライン引数を取得:

local args = io.args()

戻り値: string[]

条件種別再試行可能
ターミナルコンテキストがないerrors.UNAVAILABLEno
書き込み操作失敗errors.INTERNALno
読み取り操作失敗errors.INTERNALno
フラッシュ操作失敗errors.INTERNALno

エラーの処理についてはエラー処理を参照。