当前位置: 技术问答>linux和unix
读文件的问题,高手请进
来源: 互联网 发布时间:2015-07-10
本文导语: 最近开发一个项目,程序要监视多个文件的增加,并对增加的内容进行处理。 我希望有一种机制,可以同时监视多个文件,在文件没有新增数据的时候阻塞,某个文件新数据到来的时候程序得到通知。 本来想用select...
最近开发一个项目,程序要监视多个文件的增加,并对增加的内容进行处理。
我希望有一种机制,可以同时监视多个文件,在文件没有新增数据的时候阻塞,某个文件新数据到来的时候程序得到通知。
本来想用select调用提供的多路复用做,但是发现有问题:
程序启动时把文件指针移到文件末尾,这样可以监视程序启动后新增的部分,而不关心以前的内容。但是select在文件到末尾的时候会返回,所以就会出现在没有数据到来的时候,程序还是在一直循环读,这样消耗了大量CPU时间。
不止有没有其他的机制,可以在读到文件末尾的时候阻塞,直到有新数据添加到文件尾为止。
我希望有一种机制,可以同时监视多个文件,在文件没有新增数据的时候阻塞,某个文件新数据到来的时候程序得到通知。
本来想用select调用提供的多路复用做,但是发现有问题:
程序启动时把文件指针移到文件末尾,这样可以监视程序启动后新增的部分,而不关心以前的内容。但是select在文件到末尾的时候会返回,所以就会出现在没有数据到来的时候,程序还是在一直循环读,这样消耗了大量CPU时间。
不止有没有其他的机制,可以在读到文件末尾的时候阻塞,直到有新数据添加到文件尾为止。
|
参看tail的源代码
另外,2.4的内核据说支持fcntl的F_NOTIFY,
另外,2.4的内核据说支持fcntl的F_NOTIFY,
|
通过判断文件最后修改时间,你可以考虑考虑!!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。