社区
Linux/Unix社区
帖子详情
程序中如何防止文件操作冲突?
wudi7965
2003-08-22 04:35:21
UNIX下:
1、如何确保进程在处理文件时“独占”这个文件,主要是防止其它进程写该文件?
2、如何确保进程不会去读写其它进程正在写操作的文件?
3、ftpd、mv、cp等命令、服务在写文件时是否会对文件加锁?
最好给出C代码例子,谢谢!
...全文
25
5
打赏
收藏
程序中如何防止文件操作冲突?
UNIX下: 1、如何确保进程在处理文件时“独占”这个文件,主要是防止其它进程写该文件? 2、如何确保进程不会去读写其它进程正在写操作的文件? 3、ftpd、mv、cp等命令、服务在写文件时是否会对文件加锁? 最好给出C代码例子,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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()
修复“错误提示内存不能为read”的工具
经常使用电脑可能也遇到过了! 突然‘咚’的一声 提示 内存不能为read 这个问题我以前也遇到过不知道怎么解决 现在终于有办法了!呵呵! 我们就看看是什么原因引起的吧,另外附送一个小工具修复见下面附件 总结下大概以下9个原因 1、驱动不稳定,与系统不兼容,这最容易出现内存不能为 Read 或者
文件
保护(主要原因) 2、系统安装了一个或者多个流氓软件,这出现 IE 或者系统崩溃的机会也比较大,也有可能出现
文件
保护 3、系统加载的
程序
或者系统正在运行的
程序
之前有
冲突
,尤其是部分杀毒软件监控
程序
4、系统本身存在漏洞,导致容易受到网络攻击。 5、病毒问题也是主要导致内存不能为 Read、
文件
保护、Explorer.exe 错误…… 6、如果在玩游戏时候出现内存不能为 Read,则很大可能是显卡驱动不适合(这里的不适合有不适合该游戏、不适合电脑的显卡)也有可能是 系统版本不够新或者不符合该游戏、显卡驱动 7、部分软件本身自身不足的问题 8、电脑硬件过热,也是导致内存不能为 Read 的原因之一。 9、电脑内存与主板兼容性不好也是导致内存不能为 Read 的致命原因! 以上大概就是目前可以引起系统提示 内存不能为read的原因了 另外软件是针对只是针对部分原因引起的内存不为read所做修复,不是100%有效,大家可以试试看 说下原理: 就是批处理使用 regsvr32命令 将动态链接库
文件
重新注册 (system32下的所有 .dll 和 .ocx
文件
;) 注意:由于修复工具会重新注册 system32下的所有 .dll 和 .ocx
文件
此
操作
对杀毒软件来说属于敏感
操作
,所以建议使用修复工具的时候,请禁用杀毒软件,以免部分杀毒误报!jie
小
程序
自带git方法提交时
文件
冲突
的解决
此方式适合不太懂
操作
git的朋友。 小
程序
自带的git版本管理如图 git提交代码的正常流程: 先 commit(提交) 再pull(拉取)最后push(推送)
冲突
一定是出现在pull(拉取)后的过程之
中
...,此时小
程序
的自带git会提示
冲突
的位置 首先我们找下
冲突
的原因: 当两个人同时修改同一个
文件
时,如果修改的代码涉及到同一行代码,则会产生
冲突
,git不知道该合并谁的,就会...
关于
文件
读写
冲突
问题的探索
我在写日志记录时,项目当然是多线程、多进程的。有时候会出fwrite.c错误(windows 下面),项目
中
除了日志会对
文件
进行读写而外,没有
文件
读内容,所以第一个想法就是:是不是日志写发生
冲突
了? 虽然这种错误的情况比较少,但还是引起了我的注意,于是我有一个问题:多进程、多线程对
文件
进行写
操作
会不会发生写
冲突
? 为此我在 ubuntu上做了一下试验,代码如下: #include #incl
微信小
程序
版本管理使用以及
冲突
文件
project.config.json问题
微信
中
的git版本管理工具可以给微信小
程序
开发者提供更方便的版本管理,大家不需要使用命令行去输入,也不用去下载可视化的工具去上传,如果说有人需要smartgit连接,直接下载就行。 先说一下微信小
程序
中
的git状态的展示,在我们的
文件
目录
中
总会出现一个字母,那么他们代表的含义是什么:
文件
夹目录图标状态的含义如下: U
文件
未追踪(Untracked) A 新
文件
(Added, Staged) ...
超详细|一篇搞定
操作
系统——
文件
管理
文章目录5.1
文件
管理概述5.2
文件
结构5.2.1
文件
的逻辑结构5.2.2
文件
的物理结构5.3
文件
目录管理5.4
文件
的存储设备5.4.1
文件
的存储设备5.4.2 磁盘调度算法5.4.3 存储空间的分配与回收5.5
文件
的共享与安全 5.1
文件
管理概述 一、
文件
管理基本功能 在现代计算机系统
中
,要用到大量的
程序
和数据,因内存容量有限,且不能长期保存,所以把它们以
文件
的形式存放在外存
中
,需要时再随时将它们调入内存。所以在
操作
系统
中
又增加了
文件
管理功能,即构成一个
文件
系统,负责管理在外存
Linux/Unix社区
23,110
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章