linux输出流文件描述符,Linux下 文件描述符(fd)与 文件指针(FILE*)

本文介绍了Linux系统中的文件描述符(fd)和文件指针(FILE*)的概念。文件描述符是进程PCB中文件描述符表的索引,指向内核中的file结构体。FILE结构体包含了缓冲区和文件描述符。文件指针是通过fopen函数获得,提供了I/O缓存功能。fdopen和fileno函数可以实现文件描述符与文件指针之间的转换。在程序启动时,系统默认打开三个标准文件流:stdin(0), stdout(1), stderr(2)。" 1823949,189888,使用底层键盘钩子屏蔽特定按键,"['winapi', 'dll', 'vb']
摘要由CSDN通过智能技术生成

1、文件描述符(fd)

咱们都知道在Linux下一切皆文件。固然设备也不例外,若是要对某个设备进行操做,就不得不打开此设备文件,打开文件就会得到该文件的文件描述符fd( file discriptor), 它就是一个很小的整数,每一个进程在PCB(Process Control Block)中保存着一份文件描述符表,文件描述符就是这个表的索引,每一个表项都有一个指向已打开文件的指针。

c7736cbde000c749c1ece54743ec2266.png 

图中文件描述符即为文件描述符数组的下标

文件描述符的分配规律:从当前未使用的最小的整数开始分配;

文件描述符的缺点:

不能移植到UNIX之外的系统上去,也不直观。数组

举一个系统函数的例子:ssize_t write ( int fd, const void *buf, size_t count);

write: 是系统写函数 fd: 文件描述符 (一个整数) *buf: 内容写在哪里 count: 一次写多少个;缓存

归纳:

每个进程在PCB(Process Control Block)即进程控制块中都保存着一分文件描述符表,文件描述符就是这个表的索引,文件描述符表中每一个表项都有一个指向已打开文件的指针。如今咱们明确一下:已打开的文件在内核中用file结构体表示,文件描述符表中的指针指向file结构体。函数

fd详解

fd:为打开文件的文件描述符,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值