【发布时间】:2013-03-10 17:39:51
【问题描述】:
我有一个文件描述符,它通过 open() 函数的结果设置为正值,所以这个 fd 表示一个文件。当我删除实际文件 fd 仍然是一个正整数。我想知道如果我出于某种原因删除了一个文件,我怎么知道这个文件描述符不再有效。简而言之,我怎么知道 fd 指示的文件是否仍然存在。我正在尝试在 FreeBSD 上的 C 中执行此操作。
【问题讨论】:
-
尝试写入或读取文件。这应该会返回一个错误。
-
@RedX 这不是 UNIX 的工作方式。
-
是的,我知道我必须读取或打开该文件,但有没有办法只用 fd 打开或读取文件?是否有一个只用 fd 读取或打开的 io 函数,没有路径或 FILE*
-
@HasanBozok - 你不能
open带有 fd 的文件 - 打开 返回 fd。它只是一个 int。 -
如果您在
/p/a/t/h上获得文件描述符,然后取消链接/p/a/t/h,但/p/a/t/h/2是指向同一文件的链接,您想要什么行为?
标签: c unix freebsd file-descriptor