0

假设我open()在 *nix 机器上有一个文件,然后点击eof. 但是当我open()编辑它时,它仍在编写中。

有没有办法检测文件是否自open()-time以来增长?还是我需要close()重新open()检查?

有没有一种方法可以在eof没有close()ing 和reing 的情况下阅读旧的open()

4

1 回答 1

1

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

请注意,仅仅因为文件被其他进程关闭并不一定意味着它的大小增加了。如果您关心文件大小的变化,stat()请在关闭文件之前使用它来检查大小变化。请参阅如何确定 C 中文件的大小?

于 2013-09-18T21:18:40.813 回答