2005/05/02

ftell 超出檔案大小

以前總以為 C 函式裡頭的 ftell 回傳值不會超出檔案大小的範圍。
但是在一次意外中,竟讓我發現我錯了。
寫個小程式研究一下,原來是因為 fseek 導致的。

f = fopen("small", "rb"); //開啟一個小檔案
fseek(f, 100000, SEEK_SET); //故意fseek到超出檔案大小
printf("%dn", ftell(f)); //結果竟然顯示100000

雖然 fseek 會回傳成功或失敗,但是失敗時卻不會做任何處理,和我想像中的不一樣啊。

沒有留言: