Linux-怎样判断文件正在被写入

发布于 2016-12-06 05:30:57 字数 49 浏览 3398 评论 7

我需要等个文件被一个进程建立,写入,关闭,然后才能读取。 不借助编程语言如何做到呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

瑾兮 2017-08-30 04:34:44

在有文件占用情况下
[root@root1 root]$ /usr/sbin/lsof test.txt
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 5827 root 1u REG 9,3 3232066 32122 test.txt
[root@root1 root]$ echo $?

用这个命令也可以
fuser -u
fuser -k

泛泛之交 2017-08-17 03:12:35

c中好像没有现成的函数实现这个功能,你可以加上进制同步机制或者用fcntl实现文件读写锁来解决你的问题。
参考资料:Unix环境文件读写锁

夜无邪 2017-08-07 01:53:57

我记得 fuser -u filename 好像就查看正在操作当前文件的进程号和用户信息

瑾兮 2017-05-07 22:16:35

ps -ef | grep filename

要进一步做判断,可以再次grep read write vi 等关键字

灵芸 2017-03-20 06:04:13

在打开的时候 判断返回值 或者使用getlasterror 也可以判断

清晨说ぺ晚安 2017-03-09 02:00:22

其实我觉得你可以在文件写入时在数据库或缓存或文件中加个标识,等写入结束再删去。

甜柠檬 2017-02-15 12:41:01

用lsof来判断这个文件是否被"占用",比如:

/usr/sbin/lsof filename.log

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文