我想写一个小型的C程序,当它正在被写入时从文件读取。有任何想法吗?从C中的文件中读取它的外部写入
4
A
回答
4
如果您可以控制写入过程,则应在读写器中使用mmap()
和MAP_SHARED
。这样读者几乎可以立即看到作者所做的改变。
此外,请注意,Linux在打开文件时不会对文件中的数据进行快照,因此即使您只使用read()
和lseek()
,也应该看到文件中所做的更改。
为了确定文件是否在Linux中被修改/打开/访问/ etc,您可以使用inotify
API(请参阅inotify manpage)。这可以让您的流程等待您感兴趣的事件发生,直到它发生(而不是定期轮询)。您也可以使用epoll()
或更传统的select()
来实现类似的结果。
+0
你能分享/建议任何实际的例子吗? –
2
我认为tail -f
正是你想要的,不是吗?看看源代码: http://www.gnu.org/s/coreutils/
或者这一个(不知道是否有更新):http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/tail.c
相关问题
- 1. 读取\写入到外部app.config文件
- 2. 将输入写入文件并从C++中读取文件
- 3. 从Powershell写入文件,然后从C#中读取文件
- 4. 从外部文件读取参数 - C#
- 5. 从C++中的文本文件读取/写入结构
- 6. 从外部文件中读取android URL
- 7. 从外部表中读取Excel文件
- 8. 从外部文件中读取数据
- 9. 在C中读取(/写入)文件#
- 10. 在C++中读取和写入文件
- 11. 创建/写入/读取Jar存档外部的文本文件
- 12. 从plist文件中写入和读取
- 13. 从python中读取和写入文件
- 14. 写入和从文件中读取
- 15. NSDocumentDirectory - 写入并从文件中读取
- 16. 从python中读取/写入android文件
- 17. java的外部文件中读取
- 18. 从javascript在Objective-C项目中读取/写入文本文件
- 19. fopen读取/写入文件夹中的多个文件C
- 20. C中的文件,访问指针,读取和写入文件
- 21. 从文件读取和写入文件的问题C
- 22. C语言,从外部文件中读取新行字符
- 23. 从外部配置文件中读取appSettings的一部分
- 24. 从文件中读取输入C
- 25. 从文件中读取并写入新文件的函数
- 26. 写入一个文件并从python中的子进程中读取它?
- 27. 写入/读取文本文件(C#)
- 28. 在C#中读取和写入非常大的文本文件
- 29. 在Python中写入文件,使用Arduino从文件中读取
- 30. 从资源中读取文件并将其写入到C#中的磁盘中
你对自己的要求有任何更多的细节?你准确读什么,它是如何修改的?您是否在寻找变化(任何地方),添加到最后的行或其他内容? – Thor84no
这不是一个好主意。 IO子系统处理数据何时从输出缓冲区刷新并实际写入文件。除非您可以强制该程序清除其输出缓冲区(意思是说,您可以控制该程序的代码),否则您将得到非常“块状”的更新。如果你可以控制代码,那么有更好的方法可以在程序之间传递消息。 – jedwards
这不是不可能的,但是如果你不告诉我们你有什么问题,我们无法真正帮助你。 –