加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何检查文件是否仍在写入?

发布时间:2020-12-16 05:54:54 所属栏目:百科 来源:网络整理
导读:如何检查文件是否仍在写入?我需要等待一个文件被另一个进程创建,写入和关闭,所以我可以在我的过程中再次打开它. 解决方法 一般来说,这是一个难以解决的问题.在某些情况下,您可以询问文件是否打开;但是,如果其他进程是脚本,则可能会多次打开和关闭该文件.我
如何检查文件是否仍在写入?我需要等待一个文件被另一个进程创建,写入和关闭,所以我可以在我的过程中再次打开它.

解决方法

一般来说,这是一个难以解决的问题.在某些情况下,您可以询问文件是否打开;但是,如果其他进程是脚本,则可能会多次打开和关闭该文件.我强烈建议您使用一个咨询锁,或其他一些明确的方法,使其他进程在完成文件时进行通信.

也就是说,如果这不是一个选择,那就有另一种办法了.如果您查看/ proc /< pid> / fd目录,其中< pid>是一些运行进程的数字进程ID,您将看到一些符号链接到进程已打开的文件.符号链接的权限反映了文件被打开的模式 – 写入权限意味着它被打开用于写入模式.

所以,如果你想知道一个文件是否打开,只需扫描每个进程的/ proc条目及其中的每个文件描述符,寻找一个可写符号链接到你的文件.如果你知道其他进程的PID,你也可以直接看它的进程.

这当然有一些重大的缺点.首先,您只能查看自己进程的打开文件,除非您是root用户.它也比较慢,只适用于Linux.而如果另一个进程打开并关闭文件多次,你就会陷入僵局 – 你可能会在关闭期间看到它,并且不会有任何简单的方法知道它是否再次打开.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读