从文件描述符或文件*中检索路径?

时间:2009-09-10 17:42:33

标签: c

有没有办法从文件描述符或FILE指针中检索路径信息?

我知道在文件描述符是套接字,管道等的情况下,这些数据可能并不总是相关/有用。

3 个答案:

答案 0 :(得分:4)

我不相信有任何便携方式,但例如在Linux上,你可以在readlink fileno "/proc/self/fd/上调用",内核会给你一个路径,如果它可以,或者各种有趣的外观之一如果没有字符串。

答案 1 :(得分:3)

如果您有幸使用Mac OS X,可以使用以下代码:

#define _DARWIN_C_SOURCE
#include <sys/fcntl.h>
.
.
.
char pathbuf[PATH_MAX];
if (fcntl(fd, F_GETPATH, pathbuf) >= 0) {
    // pathbuf now contains *a* path to the open file descriptor
}

请注意,您获取的路径不一定是用于打开文件的路径...如果有硬链接,尤其是您获得的路径将是 的有效路径文件。

答案 2 :(得分:0)

文件可以有一个或多个名称,因此没有std方式。 我不确定是否可以有特定的操作系统。