程序中如何防止文件操作冲突?

wudi7965 2003-08-22 04:35:21
UNIX下:
1、如何确保进程在处理文件时“独占”这个文件,主要是防止其它进程写该文件?
2、如何确保进程不会去读写其它进程正在写操作的文件?
3、ftpd、mv、cp等命令、服务在写文件时是否会对文件加锁?
最好给出C代码例子,谢谢!
...全文
27 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ari 2003-08-23
  • 打赏
  • 举报
回复
1、如何确保进程在处理文件时“独占”这个文件,主要是防止其它进程写该文件?
2、如何确保进程不会去读写其它进程正在写操作的文件?

答:Unix在处理这种Critical Sections情况时,要用到锁的机制。像常见的读写锁/mutux/sempaphores等来处理。
如果相关的进程遵循规则(都是我们自己写的程序)那么可以通过以上机制来保证避免对资源的同时处理。如果不遵循,没有什么好的方法。
xiaosan_616 2003-08-23
  • 打赏
  • 举报
回复
你只需要用锁的机制锁住相应的文件描述符,锁分为线程锁和进程锁,怎么用你可以查书。
wudi7965 2003-08-23
  • 打赏
  • 举报
回复
请具体一些,我在ScoOpenServer505的man open中好像没有看到关于“独占”的描述。
step_by_step 2003-08-23
  • 打赏
  • 举报
回复
你可以利用文件锁来进行对文件的读写
可以看看《unix环境高级编程》
wwwunix 2003-08-22
  • 打赏
  • 举报
回复
用独占打开文件就可以了.
参考open()

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧