第一版是為 Lua 5.0 所寫。雖然對於後續版本仍然極具參考價值,但仍有一些差異。
第四版針對 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 的預設值為 0。因此,呼叫 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 和錯誤訊息。