【问题标题】:Updating status of a growing file without close/reopen在不关闭/重新打开的情况下更新增长文件的状态
【发布时间】:2013-09-23 19:31:39
【问题描述】:

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

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

有没有办法在没有close()ing 和reopen()ing 的情况下阅读旧的eof

【问题讨论】:

标签: c linux file-handling


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2015-07-10
    • 2017-04-14
    • 2019-12-13
    • 2021-10-31
    • 2013-01-20
    • 1970-01-01
    相关资源
    最近更新 更多