读书人

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

发布时间: 2012-05-20 16:03:12 作者: rapoo

文件的安全访问
假如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

读书人网 >C++

热点推荐