请教一个关于linux下检测fstream失效的问题
来源: 互联网 发布时间:2017-03-22
本文导语: 打开一个fstream对象,绑定到文件file,程序运行的过程中,断断续续往里面写入内容。通过rm命令将file删除,然而程序运行并未受到影响,fstream的good和bad成员函数也正常,我想知道怎么检测到文件被删除的情况 ...
打开一个fstream对象,绑定到文件file,程序运行的过程中,断断续续往里面写入内容。通过rm命令将file删除,然而程序运行并未受到影响,fstream的good和bad成员函数也正常,我想知道怎么检测到文件被删除的情况
|
这是正常情况,因为文件是有引用计数的,,已经打开的文件,删除后,文件的引用计数并不为0,在磁盘上还是占用空间。只有同时当所以打开文件关闭后,才会真正删除。
检测文件删除很简单呀, int stat(const char *path, struct stat *sb);//path为文件路径,若返回-1,且errno==ENOENT,则表示文件被删除了
检测文件删除很简单呀, int stat(const char *path, struct stat *sb);//path为文件路径,若返回-1,且errno==ENOENT,则表示文件被删除了