#include<iostream>
#include<string>
#include<fstream>
#include<unistd.h>
using namespace std;
int main(){
fstream f;
f.open("test.txt" , ios::app);
string s="Hello";
if(f.is_open()){
cout << "File Open"<<endl;
f << s;
sleep(15);
if(f.is_open()){
cout << "Still Open" << endl;
}else{
cout << "Not Open" << endl;
}
s= "Hey \n";
f<< s;
}else{
cout << "Not open" << endl;
}
f.close();
}
}
此代码在正常执行时会将内容写入test.txt
文件。
但是如果我在程序运行的时候删除了这个文件,然后我发现程序没有抛出任何异常并且成功退出了。但是我删除后找不到文件text.txt
。
我应该怎么做才能知道写入文件是否成功?
最佳答案
这取决于您使用的操作系统。
在 Windows 上,操作系统会首先阻止您删除此类文件。
在 Linux 上,操作系统会让您删除此类文件,但会保留此文件的句柄,直到它被使用它的进程释放(在这种情况下,fstream
将释放资源).
关于c++ - 如果我删除 C++ 程序正在向其写入数据的文件,会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53781013/