想象一下,您在 C++ 中有以下内容:
ofstream myfile;
myfile.open (argv[1]);
if (myfile.is_open()){
for(int n=0;n<=10;n++){
myfile << "index="<<n<<endl;
sleep(1);
}
}else{
cerr << "Unable to open file";
}
myfile.close();
在写入时,您正在写入的磁盘或介质变得不可用,但会在 close() 时重新打开,因此您之间会丢失数据。或者想象您写入 USB 闪存驱动器,并且在写入过程中设备被取出并重新插入。你怎么能检测到呢?我尝试检查将写入放入 try {} catch、flags()、rdstate() 中,但到目前为止似乎没有任何效果。