当前位置: 技术问答>linux和unix
我通过C程序执行tail -f printlog(printlog为日志名),想要动态获取里面新进来的日志,怎么办?
来源: 互联网 发布时间:2015-12-14
本文导语: 我通过C程序执行tail -f printlog(printlog为日志名)命令,想要动态获取printlog里面新进来的日志,怎么去获取,就像通过telnet服务器,然后输入tail 命令的时候一样要动态的获取里面的日志,怎么弄了? | ...
我通过C程序执行tail -f printlog(printlog为日志名)命令,想要动态获取printlog里面新进来的日志,怎么去获取,就像通过telnet服务器,然后输入tail 命令的时候一样要动态的获取里面的日志,怎么弄了?
|
做到实时不太容易。可以每隔几秒就检查一下/tmp/log文件是否存在。
|
开个进程不停检测文件变化,如果有变化,给主进程发信号,读取该文件。
不是很好。
不是很好。
|
1. 研究下tail源码。
2. mkfifo myfifo
tail -f filename > myfifo &
用c语言直接读myfifo
2. mkfifo myfifo
tail -f filename > myfifo &
用c语言直接读myfifo
|
楼上的解决办法跟直接读取文件没有本质区别吧。
打开文件,循环stat()文件大小,有变化则把内容读出来传给前台分析。
打开文件,循环stat()文件大小,有变化则把内容读出来传给前台分析。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。