当前位置:   article > 正文

文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换(完整版,收集,整理)_通过文件指针得到文件路径

通过文件指针得到文件路径

定义

FILE *fp;  //文件指针、句柄
int fd;  //文件描述符
char pathname[1024];  //文件路径
1、pathname --> fp,fd

fp = fopen(pathname,“r”);
fd = open(pathname,O_RDONLY);
2、fd --> fp,pathname

fp = fdopen(fd,“r”);
下面这个函数能够实现由fd转成pathname,

int get_pathname_from_fd(int fd, char pathname[], int n)
{
char buf[1024];
pid_t pid;

bzero(buf, sizeof(buf));
pid = getpid();
snprintf(buf, sizeof(buf), "/proc/%i/fd/%i", pid, fd);
  • 1
  • 2
  • 3

return readlink(buf, pathname, n);
}
3、fp --> fd,pathname

fd = fileno(fp);
由于有get_pathname_from_fd作基础,很容易实现fp->pathname,

int get_pathname_from_fp(FILE *fp, char pathname[], int n)
{
  return get_pathname_from_fd(fileno(fp),pathname,n);
}

转载于:https://www.cnblogs.com/niocai/archive/2011/11/24/2261686.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/208430?site
推荐阅读
相关标签
  

闽ICP备14008679号