在不关闭/重新打开的情况下更新不断增长的文件的状态

时间:2013-09-18 21:10:28

标签: c linux file-handling

假设我{* 1}} * nix机器上的文件,我点击了open()。但是当我eof编辑它时,它仍在被写入。

有没有办法检测文件是否在open() - 时间后增长?或者我是否需要open()并重新close()进行检查?

有没有办法在没有open()和重新eof的情况下阅读旧版close()

1 个答案:

答案 0 :(得分:1)

虽然不可移植,但在Linux上,您可以使用inotify系统并监视您感兴趣的文件的文件关闭事件。请参阅http://www.ibm.com/developerworks/library/l-inotify/

请注意,仅仅因为文件被其他进程关闭并不一定意味着它的大小已经增加。如果您关心文件大小更改,请在关闭文件大小之前使用stat()检查大小更改。见How do you determine the size of a file in C?