我做了一个函数,试图创建一个目录,然后写一个简单的文件:
buffer = "Hello world!";
string url = "a/b/c/d/";
string tmp = "";
string done = "";
while((tmp = GetBaseDir(url)).compare("")!=0){
done+=tmp;
mkdir(done.c_str(), 0777);
} // GetBaseDir returns "a/", and changes url to "b/c/d/"
ofstream file;
file.open((url+"file.txt").c_str(),ios::trunc);
file << buffer;
file.close();
如您所见,它只会尝试,如果出现故障,它只会继续进行。
我读到如果另一个进程以写权限打开同一个文件,“打开”将失败。但是,这是真的吗?
如果我同时运行此代码的多个实例,mkdir 和写入操作会发生什么情况?