加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何使用文件描述符检查文件是否仍然存在

发布时间:2020-12-15 21:42:41 所属栏目:安全 来源:网络整理
导读:我有一个文件描述符设置为正值与open()函数的结果,所以这个fd指示一个文件.当我删除实际文件时,fd仍然是一个正整数.我想知道如果由于某种原因删除文件,我怎么知道这个文件描述符不再有效.简而言之,我怎么知道fd指示的文件,仍然存在与否.我想在FreeBSD上用C做
我有一个文件描述符设置为正值与open()函数的结果,所以这个fd指示一个文件.当我删除实际文件时,fd仍然是一个正整数.我想知道如果由于某种原因删除文件,我怎么知道这个文件描述符不再有效.简而言之,我怎么知道fd指示的文件,仍然存在与否.我想在FreeBSD上用C做这个.

解决方法

Unix系统允许您删除打开的文件(或者更确切地说,删除文件系统中对文件的所有引用).但文件描述符仍然有效.任何读写调用都会成功,因为文件名仍然存在.

换句话说,在文件描述符关闭之前,您无法完全删除文件.关闭后,文件将自动删除.

使用有效的文件描述符,您可以检查文件名是否仍然存在,例如

printf("%dn",buf.st_nlink);  // 0 means no filenames

其中buf是使用fstat初始化的struct stat.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读