有没有办法从文件描述符或FILE指针中检索路径信息?
我知道在文件描述符是套接字、管道等情况下,这些数据可能并不总是相关/有用的。
#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
}
我不相信有任何通用的方法,但是例如在Linux上,您可以调用readlink
函数,传入"/proc/self/fd/
fileno"
作为参数,如果内核能够提供路径,则会返回路径,否则会返回各种看起来很奇怪的字符串。
一个文件可以有一个或多个名称,因此没有标准方法。 我不确定是否有操作系统特定的内容。
readlink()
函数适用于符号链接:它以路径名的形式提供链接的目标。 - dmckee --- ex-moderator kitten