问题描述
我正在使用Linux一段时间,今天我发现了一件有趣的事情。
如果在运行程序时删除文件,我认为程序会产生一些错误。令我惊讶的是,什么也没发生...
这是我使用c ++ 11创建ininite程序的方式:
this.$apollo.queries.cartProducts.refetch()
因此,在运行它之后,我得到了一个新文件名int main()
{
std::ofstream outputFile("./target");
int i = 0;
while (true) {
outputFile << i << endl;
i++;
std::this_thread::sleep_for(chrono::milliseconds(1000));
}
return 0;
}
。如果删除此文件(target
),将不会产生错误。
我的问题是:
解决方法
回答1&2:当您认为已删除文件时,实际上所做的就是删除了指向文件的“链接”。由于您的程序已经在运行,因此该文件实际上是打开的。该文件仍然存在,并且可以访问该文件并从中读取。因此,没有错误消息,因为您仍在写入文件。