【发布时间】:2011-12-22 04:19:47
【问题描述】:
假设您在 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() 中,但到目前为止似乎没有一个工作。
【问题讨论】:
标签: c++ exception error-handling io writing