from:http://www.cnblogs.com/niocai/archive/2011/11/24/2261686.html


定义

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);
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);
}

另外,可以通过man 2 stat 查看使用方法。

更多相关文章

  1. Android设置锁屏/休眠时长
  2. cordova3+sencha touch2.x 环境搭建
  3. android典型代码系列(十二)------删除某个文件夹里面的所有内容(
  4. Android(安卓)Studio 2.3使用CMake方式NDK入门
  5. Android添加新的视频格式--媒体库扫描
  6. android cocos2d-x libjson
  7. [Android]乐Pad开发准备
  8. Android(安卓)反编译APK文件
  9. Android(安卓)Studio 编译卡慢、卡顿的几种解决方案

随机推荐

  1. Android(安卓)Studio 一些方便使用的设置
  2. Andriod内嵌HTML5项目构建以及整包更新配
  3. [置顶] android 多媒体和相机详解六
  4. Android(安卓)XML shape 标签使用详解(ap
  5. Android车轮之图片加载框架Android-Unive
  6. Android(安卓)即时音视频解决方案2——腾
  7. [Android]自定义View(一):坐标系
  8. Android(安卓)Studio SVN/Git之忽略文件
  9. 6.1、Android(安卓)Studio配置构建
  10. Android(安卓)RecyclerView中ViewHolder