Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Linux:如何确定文件是否已被其他进程更新?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我目前正在观看log4j输出的XML文件.我有一个自定义查看器,在GUI中显示日志输出.我需要观察这个文件何时更新,以便GUI可以重新解析和更新自己.在C#中有一个FileWatcher概念,所以在Windows上没有probs,但我在Linux上使用C有什么选择.有没有一种标准的方法在unix和linux版本(POSIX可能)上执行此操作?谢谢最佳答案Jo
@H_673_15@我目前正在观看log4j输出XML文件.我有一个自定义查看器,在GUI中显示日志输出.我需要观察这个文件何时更新,以便GUI可以重新解析和更新自己.在C#中有一个FileWatcher概念,所以在Windows上没有probs,但我在Linux上使用C有什么选择.

@H_673_15@有没有一种标准的方法在unix和linux版本(POSIX可能)上执行此操作?

@H_673_15@谢谢

最佳答案
John提到了在Unix / Linux系统下观看文件可以采取的两条主要途径:通知和轮询.@H_673_15@ @H_673_15@通知是指系统本身(通常是内核)在访问或写入文件时向注册的应用程序发出消息的时间.此方法需要兼容的系统,可能在旧机器上不可用.

@H_673_15@Linux下通知的主要实现是inotify,它内置于2.6.13及更高版本的内核中,可以修补到2.6.12及更早版本.有一个使用inotify的nice IBM guide以及一个用于访问inotify的基本set of tools and C library.

@H_673_15@轮询是指您的程序每隔一段时间反复检查一个文件,以查看该文件的任何内容 – 其大小,上次修改时间,所有者等 – 是否已更改.

@H_673_15@没有标准的实现,因为它是在程序级而不是系统级的基础上编写的,尽管系统调用poll存在并且似乎为此目的做了一些有用的事情(手册页说它类似于select,它等待使事件在文件描述符上可用).您也可以使用stat采用更基本的方法并自行进行检查.

大佬总结

以上是大佬教程为你收集整理的Linux:如何确定文件是否已被其他进程更新?全部内容,希望文章能够帮你解决Linux:如何确定文件是否已被其他进程更新?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。