1、文件描述符(fd)
咱们都知道在Linux下一切皆文件。固然设备也不例外,若是要对某个设备进行操做,就不得不打开此设备文件,打开文件就会得到该文件的文件描述符fd( file discriptor), 它就是一个很小的整数,每一个进程在PCB(Process Control Block)中保存着一份文件描述符表,文件描述符就是这个表的索引,每一个表项都有一个指向已打开文件的指针。
图中文件描述符即为文件描述符数组的下标
文件描述符的分配规律:从当前未使用的最小的整数开始分配;
文件描述符的缺点:
不能移植到UNIX之外的系统上去,也不直观。数组
举一个系统函数的例子:ssize_t write ( int fd, const void *buf, size_t count);
write: 是系统写函数 fd: 文件描述符 (一个整数) *buf: 内容写在哪里 count: 一次写多少个;缓存
归纳:
每个进程在PCB(Process Control Block)即进程控制块中都保存着一分文件描述符表,文件描述符就是这个表的索引,文件描述符表中每一个表项都有一个指向已打开文件的指针。如今咱们明确一下:已打开的文件在内核中用file结构体表示,文件描述符表中的指针指向file结构体。函数
fd详解
fd:为打开文件的文件描述符,
本文介绍了Linux系统中的文件描述符(fd)和文件指针(FILE*)的概念。文件描述符是进程PCB中文件描述符表的索引,指向内核中的file结构体。FILE结构体包含了缓冲区和文件描述符。文件指针是通过fopen函数获得,提供了I/O缓存功能。fdopen和fileno函数可以实现文件描述符与文件指针之间的转换。在程序启动时,系统默认打开三个标准文件流:stdin(0), stdout(1), stderr(2)。"
1823949,189888,使用底层键盘钩子屏蔽特定按键,"['winapi', 'dll', 'vb']
最低0.47元/天 解锁文章
1993

被折叠的 条评论
为什么被折叠?



