linux文件描述符fd

简介: linux文件描述符fd

文件描述符 fd是一个>=0 的整数

每打开一个文件,就创建一个文件描述符,通过文件描述符来操作文件

预定义的文件描述符:

0:标准输入,对应于已打开的标准输入设备(键盘)

1:标准输出,对应于已打开的标准输出设备(控制台)

2.标准错误,对应于已打开的标准错误输出设备(控制台)

多次打开同一个文件,可得到多个不同的文件描述符

(1)使用底层文件操作(系统调用) 比如: read

可使用man 2查看

(2) 使用IO库函数 比如: fread

可使用man 3查看

范例:

demo1.c

#include<stdio.h>
#include<string.h>
int main(void){
  do{
    write(1,"Hello\n",6);
    sleep(1);//休眠1秒
  }while(1);
  return 0;
}

编译执行该程序,同时使用另一会话查看系统进程

ps -ef | grep demo1 //查看demo1程序下进程

cd /proc/6157/  //跳转到进程6157目录下

cd /fd/  //跳转到fd目录下

具体操作如下:

目录
相关文章
|
2月前
|
Unix Linux Shell
【探索Linux】P.12(文件描述符 | 重定向 | 基础IO)
【探索Linux】P.12(文件描述符 | 重定向 | 基础IO)
27 0
|
1月前
|
存储 Linux C语言
【Linux】文件描述符
【Linux】文件描述符
|
2月前
|
存储 Linux 开发工具
【Linux】基础 IO(文件描述符)-- 详解(下)
【Linux】基础 IO(文件描述符)-- 详解(下)
|
2月前
|
存储 Linux C语言
【Linux】基础 IO(文件描述符)-- 详解(上)
【Linux】基础 IO(文件描述符)-- 详解(上)
|
2月前
|
Linux 程序员 C语言
【linux基础I/O(一)】文件描述符的本质&重定向的本质
【linux基础I/O(一)】文件描述符的本质&重定向的本质
|
2月前
|
安全 Linux Shell
为什么在 linux system service 启动服务,最大文件描述符变成了默认的 4096
修改系统或用户文件描述符限制可能未生效,需确保执行系统重启、systemd 重启或服务重启以加载新配置。注意服务运行账户的权限和配置文件中的限制,检查服务 unit 文件是否覆盖默认限制。临时 `ulimit` 调整不适用于服务启动,应修改配置文件。还要确认内核版本和配置是否允许更高的限制。
31 0
|
2月前
|
Unix Linux 索引
Linux 基础解惑:Linux 下文件描述符标志和文件描述符状态标志,文件状态标志,文件状态之间的区别
Linux 基础解惑:Linux 下文件描述符标志和文件描述符状态标志,文件状态标志,文件状态之间的区别
97 0
|
2月前
|
存储 Unix Linux
Linux文件描述符和打开文件之间的关系
文件描述符和打开的文件之间似乎呈现出一一对应的关系。然而,实际并非如此。多个文件描述符指向同一打开文件,这既有可能,也属必要。这些文件描述符可在相同或不同的进程中打开。要理解具体情况如何,需要查看由内核维护的 3 个数据结构。进程级的文件描述符表。系统级的打开文件表。文件系统的 i-node 表。上述讨论揭示出如下要点。两个不同的文件描述符,若指向同一打开文件句柄,将共享同一文件偏移量。
30 0
Linux文件描述符和打开文件之间的关系
|
2月前
|
Unix Linux API
Linux文件描述符和文件指针互转
文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于UNIX、Linux这样的操作系统。FILE *指针变量标识符;其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。在编写源程序时不必关心FILE结构的细节。
34 0
|
存储 Linux 缓存
linux中文件描述符fd和文件指针flip的理解
整理自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd(file descriptor)只是一个整数,在open时产生。
1398 0