文件描述符可以通过open等函数获得;

文件流可以通过fopen获取,然后通过fileno获取文件流对应的文件描述符。

#include "apue.h"int
main(void)
{char   name[L_tmpnam], line[MAXLINE];FILE  *fp;struct stat             statbuf;char buf[1024] = {'\0'};char file_path[1000] = {'0'};   printf("%s\n", tmpnam(NULL));       /* first temp name */tmpnam(name);                      /* second temp name */printf("%s\n", name);if ((fp = tmpfile()) == NULL)       /* create temp file */err_sys("tmpfile error");fputs("one line of output\n", fp);   /* write to temp file */rewind(fp);                         /* then read it back */if (fgets(line, sizeof(line), fp) == NULL)err_sys("fgets error");fputs(line, stdout);                /* print the line we wrote */int fd = fileno(fp);printf("%d\n", fd);fstat(fd, &statbuf);/*这里进行文件路径的获取*/snprintf(buf, sizeof (buf), "/proc/self/fd/%d", fd);if (readlink(buf, file_path, sizeof(file_path) - 1) != -1) {printf("%s\n", file_path);}printf("asdf\n");sleep(200);exit(0);
}
[root@localhost stdio]# ./tempfiles
/tmp/fileZzCLWA
/tmp/filez3qU8z
one line of output
3
/tmp/tmpf5F52kz (deleted)
asdf
^C

Linux C编程 —— 通过文件描述符获得文件路径相关推荐

  1. 嵌入式Linux系统编程学习之九基于文件描述符的文件操作

    文章目录 前言 一.文件描述符 二.打开.创建和关闭文件 三.读写文件 四.改变文件大小 五.文件定位 六.原子操作 七.进一步理解文件描述符 八.文件描述符的复制 九.文件的锁定 十.获取文件信息 ...

  2. linux进程文件描述符 vnode,Linux C编程详解:进程原理分析、文件描述符和文件记录表、文件句柄和文件原理...

    一.引言 文件操作是Linux C编程中其中的一项核心技术,实际上也相当重要,这里并不是说狭义上的那种文件操作,它也非常有助于理解和学习Linux系统.为什么这样说呢?因为在Unix/Linux的世界 ...

  3. linux c 文件指针 句柄(FILE*) 文件描述符(fd) 文件路径(filepath) 互相转换

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

  4. linux文件描述符泄漏,文件描述符(fd)泄漏排查一篇就够了

    生产多次遇到文件描述符(fd)泄露相关的问题, 文件描述符泄漏一般引起 的现象是文件句柄数(封面图)/tcp alloc(上图)增长.文章分为两部分介绍文件描述符相关内容,第一部分介绍文件描述基础知识 ...

  5. 在c语言中文件的指针是什么,C语言中文件描述符和文件指针的本质区别

    1,首先了解进程运行时默认打开的文件指针以及打开的文件 /* Standard streams. / extern struct _IO_FILE stdin; / Standard input st ...

  6. Linux系统编程——基于文件描述符的文件操作(1)

    概要: 打开.创建和关闭文件 读写文件 文件定位 获取文件信息 打开.创建和关闭文件 函数原型: #include <sys/types.h> //头文件 #include <sys ...

  7. Linux - fd文件描述符和文件详解

    ​​​​​​​             ​​​​​​​  感谢各位 点赞 收藏 评论 三连支持 本文章收录于专栏[Linux系统编程] ❀希望能对大家有所帮助❀ 本文章由 风君子吖 原创 ​​​​​​ ...

  8. linux 内核 遍历文件夹,Linux内核中通过文件描述符获取绝对路径

    背景 在Linux内核中,已知一个进程的pid和其打开文件的文件描述符fd,如何获取该文件的绝对路径?基本思路是先获取该文件在内核中的file结构体,再通过d_path()获取到整个文件的绝对路径. ...

  9. (整理类)文件描述符,文件描述符标志,文件状态标志

    感谢和参考于(你们是我成长路上的最大助力!): Linux中文件描述符fd和文件指针flip的理解 文件描述符标志.文件状态标志 Linux编程–文件描述符fd PART 1 文件描述符:fd(fil ...

  10. UNIX中文件描述符和文件指针

    文件描述符 在C程序中,文件由文件指针或者文件描述符表示.ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UN ...

最新文章

  1. linux笔记 1-13-软件安装
  2. C++_STL——list(and forward_list)
  3. 操作系统内存管理--简单、页式、段式、段页式
  4. 【二分】抄书 (jzoj 2123)
  5. 数据结构c语言版第16页,数据结构c语言版
  6. 向前欧拉公式例题_小学语文阅读理解答题万能公式,简单实用!
  7. java面试关于ssh的_[Java教程]ssh面试题
  8. 用java script随机数_js中Math.random()生成指定范围数值的随机数【转】
  9. vue.js能美化界面吗_美牙真的能变美吗?刘涛花百万美化牙齿,容貌大变样,网友:太神奇了吧...
  10. MATLAB秦九韶算法
  11. 阿酷三合一版_阿酷插件下载|3dmax阿酷插件下载 v3.2 开源版 - 比克尔下载
  12. 基于JSP实现学校社团管理系统
  13. 系统分析员应具备的能力
  14. eclipse 背景绿豆沙颜色
  15. jq 获取input的光标,定位光标的位置
  16. beatsaber自定义
  17. 自建游戏加速器教程(国内玩家联机)
  18. c++课后题,声明一个长方体类Box,该类有长度(length),宽度(width),高度(height)三个数据成员,类中有获取及修改长度…………
  19. python定位二维码_python实现二维码、条形码识别
  20. unity wsad 鼠标_Unity键盘WASD实现物体移动|chu

热门文章

  1. wireshark打开cap抓包文件不能显示中文
  2. alooa是华为什么型号_dubalooa什么型号手机 dubalooa华为手机什么型号 - 云骑士一键重装系统...
  3. mysql的auto_increment详解
  4. 将文件夹压缩成zip文件的php代码、实现批量下载
  5. unbuntu 中部署jenkins
  6. LeeCode 1467 dfs + 组合数
  7. clk_get_rate函数
  8. IBM与中国银联探索区块链技术落地应用
  9. ubuntu16.04中 vim8 backspace键删除功能失效
  10. 永恒之蓝漏洞复现及上传后门程序