如果从终端终止程序,打开的ofstream对象会发生什么
What happens to an opened ofstream object if you kill the program from the terminal?
首先,我使用的是Shell终端,所以我通过Ctrl-C终止程序。假设我有这样的代码:
#include <iostream>
#include <fstream>
using namespace std;
int main (){
ofstream ofs("testing.txt");
for (unsigned int i=0;;i++){
ofs << i << endl;
}
}
这个程序将保存每个自然数在一个文件中,直到我杀死它。我的问题是:fstream的析构函数在程序被终止时被调用,否则我将有一个损坏的文件或类似的东西?请记住,我以后会再次使用该文件。
那么,您使用中断(Ctrl-C
),在一般情况下:
…中断是由硬件或软件向处理器发出的指示需要立即注意的事件的信号。中断提醒处理器进入高优先级状态,需要中断处理器正在执行的当前代码。处理器的响应方式是挂起当前活动,保存其状态,并执行一个称为中断处理程序(或中断服务例程,ISR)的函数来处理事件…
你的输出流将会发生什么是系统特定的,它取决于是否正在进行一些缓存
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- fstream / ifstream / ofstream 对象如何转换为布尔值
- 使用 auto_ptr<std::ofstream> 对象
- 为什么我可以在临时 std::ofstream 对象上使用"operator<<"?
- 如何在共享指针向量中检查重复的"ofstream"对象
- 将 std::ofstream 对象作为参数传递给类方法
- 有效而干净的方法来编写一个ofstream/fstream对象,以用标头编写表
- Ofstream 对象不能使用运算符<<C++
- 在使用 ofstream 将数据写入其文件后更新 ifstream 对象
- ofstream-需要在close()操作后删除对象句柄
- 如果从终端终止程序,打开的ofstream对象会发生什么
- 可以使用ofstream对象作为backtrace_symbols_fd()的第三个参数吗?
- Ofstream不向文本文件写入对象
- c++的ofstream向文件写入值而不是对象的地址
- 如何正确传递ofstream对象?