1. 程式人生 > >lua的坑之檔案io

lua的坑之檔案io

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">對於lua的c89依賴如此之深,只能說喜憂參半吧。</span>

今天的重點是說檔案IO今天的重點是說檔案I/O。C89裡面的seek是這樣定義的

int fseek( FILE *stream, long offset, int origin );

long最大4G,顯然,對於今天的硬碟已經過時了。如果你用C寫,系統其實已經想到了,已經提供了一個類似lseek64的函式。

可是在lua裡面要支援,就很費勁了。

Stackoverflow上有提問,貌似要5.2.1才解決。尷尬

像我們這種使用5.1的怎麼辦?貌似要寫C擴充套件開可以了。

網上有一個nixio,裡面有部分實現大檔案(還要很多其他的,你需要該一點程式碼去掉)

他的程式碼其實是有問題的:

  1. 宣傳是支援大檔案,其實沒有用的64位
  2. read的實現跟預期不一樣
  3. 無緩衝算不算一個bug?
  4. seek和tell的返回值完全是錯的
我還在修改這個專案中,還要用的小夥伴請三思~