この初版は Lua 5.0 用に書かれました. 後のバージョンでは依然として大部分が関連していますが、相違点がいくつかあります.
第 4 版は Lua 5.3 を対象に、Amazon とその他の書店で購入できます.
書籍を購入することで、Lua プロジェクトをサポートすることにもなります.


21.3 – ファイルに対するその他の操作

tmpfile 関数は読み書きモードで開かれた一時ファイルのハンドルを返します. このファイルはプログラムが終了すると自動的に削除されます. flush 関数は未処理のすべての書き込みをファイルに対して実行します. write 関数と同様に、関数として呼び出す (io.flush())、現在の出力ファイルをフラッシュしたり、メソッドとして呼び出す (f:flush()) ことによってファイル f をフラッシュすることができます.

seek 関数はファイルの現在の位置を取得および設定するために使用できます. その一般的な形式は filehandle:seek(whence, offset) です. whence パラメータはオフセットの解釈方法を指定する文字列です. 有効な値は、オフセットがファイルの先頭から解釈されるときの "set"、オフセットがファイルの現在の位置から解釈されるときの "cur"、オフセットがファイルの末尾から解釈されるときの "end" です. whence の値に関係なく、呼び出しはファイルの現在の位置をファイルの先頭からのバイト数で測定して返します.

whence の既定値は "cur"、offset の既定値はゼロです. そのため、file:seek() の呼び出しはファイルの現在の位置を返しますが、変更はしません. file:seek("set") の呼び出しは、位置をファイルの先頭に戻し (0 を返します). file:seek("end") の呼び出しは、位置をファイルの末尾に設定し、そのサイズを返します. 次の関数は現在の位置を変更せずにファイルのサイズを取得します.

    function fsize (file)
      local current = file:seek()      -- get current position
      local size = file:seek("end")    -- get file size
      file:seek("set", current)        -- restore position
      return size
    end

前のすべての関数は、エラーが発生した場合に nil とエラーメッセージを返します.