社区
Linux/Unix社区
帖子详情
linux 多进程控制一个文件的问题
yueyinggufan
2010-04-13 06:14:04
如果多个进程对一个文件进行读写操作的时候,第三方的进程把这个文件给删掉了,那进行读写的进程如何知道这个文件被删掉了?
(1 不能每次读写都判断这个文件是否存在 2 最好不要用另外一个程序监控这个文件,然后发信号给其他进程进行通知,这样效率太低,因为可能有100个进程操作这个文件)
...全文
337
5
打赏
收藏
linux 多进程控制一个文件的问题
如果多个进程对一个文件进行读写操作的时候,第三方的进程把这个文件给删掉了,那进行读写的进程如何知道这个文件被删掉了? (1 不能每次读写都判断这个文件是否存在 2 最好不要用另外一个程序监控这个文件,然后发信号给其他进程进行通知,这样效率太低,因为可能有100个进程操作这个文件)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiangfeng999
2010-04-20
打赏
举报
回复
[Quote=引用 4 楼 xiaowai0219 的回复:]
如果多个进程对一个文件进行读写操作的时候,第三方的进程把这个文件给删掉了,那进行读写的进程如何知道这个文件被删掉了?
应该不会被杀掉吧。删掉只是把计数器减一而已,除非计数器为0,否则是不会物理删除的。。。
[/Quote]
同意楼上的,楼主做过这样的试验就可以验证。
1.先用vi打开一个文件;
2.看另外一个窗口删除vi打开的这个文件;
3.用ps获得vi的进程号;
4.到ls -l /proc/进程号/fd可以看到vi进程打开的文件描述符。cat 文件描述符可以看到已经被删除的文件
cceczjxy
2010-04-14
打赏
举报
回复
你使用fopen打开文件时 如果文件不存在打开是失败的
判断 errno值即可
hittlle
2010-04-14
打赏
举报
回复
inotify
ecsape
2010-04-14
打赏
举报
回复
每个进程访问文件的时候,在打开前,判断文件/var/file.lock是否存在,不存在创建一个文件/var/file.lock ,读写,完了后,删除/var/file.lock。存在就wait到这个文件不存在。
xiaowai0219
2010-04-14
打赏
举报
回复
如果多个进程对一个文件进行读写操作的时候,第三方的进程把这个文件给删掉了,那进行读写的进程如何知道这个文件被删掉了?
应该不会被杀掉吧。删掉只是把计数器减一而已,除非计数器为0,否则是不会物理删除的。。。
linux
多进程
和网络编程---ftp服务器实战
基于
linux
编程龙书,Apue和UNP深入浅出讲解原理:
文件
读写效率,
多进程
与僵尸,信号合并,多线程读写锁同步,高并发服务端,select多路复用并以3000行ftp开源服务器剖析,巩固知识
linux
基础编程
linux
网络编程ftpServer开源项目之源码解析 更多课程相关内容请查看我的博文:https://blog.csdn.net/wangwengx73sina/article/details/87940242
Linux
为什么
多进程
能够读写正在删除的
文件
Linux
中
多进程
环境下,打开同
一个
文件
,当
一个
进程进行读写操作,如果另外
一个
进程删除了这个
文件
,那么读写该
文件
的进程会发生什么呢? 因为
文件
被删除了,读写进程发生异常? 正在读写的进程仍然正常读写,好像没有发生什么? 学操作系统原理的时候,我们知道,
linux
是通过link的数量来
控制
文件
删除,只有当
一个
文件
不存在任何link的时候,这个
文件
才会被删除。 而每个
文件
都会有2个link计数器...
Linux
中进程间传递
文件
描述符的方法
在进行fork调用后,由于子进程会拷贝父进程的资源,所以父进程中打开的
文件
描述符在子进程中仍然保持着打开,我们很容易的就将父进程的描述符传递给了子进程。但是除了这种情况下,如果想将某个父进程在子进程创建后才打开的描述符传递给子进程,又或者是想将子进程的描述符传递给父进程时,就遇到了
问题
。 在
Linux
中,虽然
文件
描述符是
一个
整型值,但是它的传递并非只是传递这个值而已。因为这个整型值其实是
文件
描述符表fd_array[]的下标 由于不同进程的
文件
描述符表不同,所以要传递
一个
文件
描述符,就是要在接收进程中的文
java
多进程
写
一个
文件
_java高并发多线程及
多进程
同时写入
文件
研究
测试&思考:环境:windows 七、
linux
centos 6.三、java8htmljava多线程同时写
一个
文件
java高并发环境下多线程同时写入
一个
文件
时,经过 FileLock 加锁,能够
控制
对
文件
的并发操做。同
一个
JVM,能够共享部份内存java第一种状况是:
一个
线程A有对
文件
加锁,另外
一个
线程B没对
文件
加锁在windows7环境下:(持有锁的能够写
文件
成功)。持有锁的线程A会...
多进程
同时访问
文件
并发
问题
解决方法
因为业务需求需要多个进程同时访问某个
文件
并进行读写操作的需求,因为
文件
并不是被同
一个
进程访问,而且极大可能会发生
多进程
争抢
文件
句柄的情况,如果在同
一个
进程里不同的线程访问,或许还能使用线程锁的方式
控制
,但是跨进程时就无法解决。网上询问解决方法基本上都类似
Linux
里日志
文件
服务一样,建立
一个
独立的
文件
操作服务,由
文件
操作服务来
控制
不同进程对同
一个
文件
的访问。但是这样改动量就比较大,而且因为不同的程
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章