2013-09-22 34 views
4

如果我遇到feof(),然後stat顯示文件已經增長,是否有一種方法可以在不執行fclose()fopen()的情況下讀取添加的數據?閱讀正在增長的文件

+0

請參閱[這裏](http://stackoverflow.com/questions/11757304/how-to-read-a-growing-text-file-in-c)和[這裏](http://stackoverflow.com /問題/ 7864769/C-閱讀從 - 一個活文件,文件保持增長,在尺寸)。 – 2013-09-22 05:36:47

+0

謝謝@Tsukuyo,但第一個鏈接是C++,它使用了一組不同的文件I/O調用,第二個說使用'select()'這似乎不可行(據我瞭解'select() '無論如何)。 – Fixee

回答

6

是的。您可以在文件上調用clearerr,或執行任何查找操作,如fseek(f, 0, SEEK_CUR)

+0

'fseek(f,0,SEEK_CUR)'清除'eof'標誌?這對我來說是新聞(並且相當有幫助!)。 – Fixee

+0

C99 7.19.9.2 fseek函數,第5段:「確定新位置後,成功調用fseek函數將撤消流上的ungetc函數的任何影響,清除流的文件結束指示符,並且然後確立新的立場。「 –