日期:2014-05-16  浏览次数:20573 次

请教一个关于linux下检测fstream失效的问题
打开一个fstream对象,绑定到文件file,程序运行的过程中,断断续续往里面写入内容。通过rm命令将file删除,然而程序运行并未受到影响,fstream的good和bad成员函数也正常,我想知道怎么检测到文件被删除的情况
------解决方案--------------------
这是正常情况,因为文件是有引用计数的,,已经打开的文件,删除后,文件的引用计数并不为0,在磁盘上还是占用空间。只有同时当所以打开文件关闭后,才会真正删除。

检测文件删除很简单呀, int stat(const char *path, struct stat *sb);//path为文件路径,若返回-1,且errno==ENOENT,则表示文件被删除了