zoukankan      html  css  js  c++  java
  • 文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换(转)

    转自: http://blog.csdn.net/jenghau/article/details/5532265

    文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换

    最近在linux下编程常需要对一些文件进行操作。有时不同的条件下,需要将文件指针/句柄(FILE*)、文件描述符(fd)以及文件路径(filepath)进行相互转换,以满足实际的编程需要。

    现简单的做一下整理。如下。

    1:文件路径 文件描述符应是唯一的。文件指针(值)不是唯一的,但指向的对象也应该是唯一的。


    2: FILE*中包含fd的信息,而且还包含IO缓冲,所以可以理解为FILE*是对fd的封装,是C的标准形式,所以FILE*比fd更适合跨平台,应多用fopen,少用 open。

    3:转换

       文件路径 到 文件指针:filepath --fopen()-->FILE*;
       文件路径 到 文件描述符:filepath--open()--fd; 

       文件描述符 到 文件指针:fd--fdopen()-->FILE*;
       文件描述符 到 文件路径:fd--readlink(/proc/%getpid()/fd/%fd"))-->filepath; //这属于“曲线救国”

       文件指针 到 文件描述符:FILE*--fileno()--->fd;
       文件指针 到 文件路径:FILE* --- ??? ---PATH;// 这个的直接转换的方法还没有查到。请补充。

  • 相关阅读:
    CCF|学生排队|Java
    CCF|分蛋糕|Java
    CCF|公共钥匙盒|Java
    CCF|打酱油|Java
    CCF|游戏|Java
    CCF|最小差值|Java
    CCF|路径解析|Java
    CCF|碰撞的小球
    CCF|跳一跳
    Win10 1803更新UWP无法安装的解决办法|错误代码0x80073D0D
  • 原文地址:https://www.cnblogs.com/little-ant/p/3424766.html
Copyright © 2011-2022 走看看