首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

文件的安全访问,该怎么处理

2012-05-20 
文件的安全访问假如A进程中有以下代码C/C++ code#define FILENAME D:\\test.logif(_access(FILENAME, F_

文件的安全访问
假如A进程中有以下代码

C/C++ code
#define FILENAME "D:\\test.log"if(_access(FILENAME, F_OK) == -1){    fp = fopen(FILENAME, "w+");    //do something...}


加入A进程执行完access函数之后,跳到了一个程序B,而B程序中恰好创建了test.log这个文件,写入了一些数据,并关闭了文件句柄。
此时,跳回A程序,A程序再执行 fp = fopen(FILENAME, "w+"); 那么此时就把B程序写入的内容全部清空了。

现在的问题是,如何保证A程序的_access和fopen 连续执行,或者当A程序执行完_access之后,其他程序不能创建、操作该文件(类似信号量的东西)?

[解决办法]
文件锁
flock
[解决办法]
_fsopen

热点排行