Я обнаружил различное поведение ofstream , если ofstream.close () не вызывается из-за прерывания до close () и если отключение питания до близко () .
Примечание : файл отсутствует на диске.
1. С прерыванием ()
int _tmain(int argc, _TCHAR* argv[])
{
ofstream o("new.txt");
o<<"new file data";
abort();
o.close();
return 0;
}
output: файл, созданный с «новыми данными файла».
2. С отключением питания
int _tmain(int argc, _TCHAR* argv[])
{
ofstream o("new.txt");
o<<"new file data";
//power down or stop debug here
o.close();
return 0;
}
вывод: пустой файл создан.
При использовании abort () кажется, что close () вызывается из деструктора fstream, но не при сценарии отключения питания?