【Linux】文件描述符和FILE结构体
文件描述符
文件描述符是一个整数,用来标记每一个的打开的文件和socket。
第一个打开的文件的文件描述符是0,第二个是1...以此论推
在Unix/Linux系统下,0号文件对应的是标准输入(stdin),1号文件对应的是标准输出(stdout),2号文件对应的是标准错误(stderr)
每个进程都在其PCB中保存着一份文件描述符表,而文件描述符作为这个表的索引可以让我们快速的查到每个表项对应的打开文件的指针
文件描述符的优缺点
优点:文件描述符是许多Linux/Unix系统进行系统调用的接口
缺点:不可移植性,不能移植到Unix系统之外的其他系统
FILE结构体
FILE结构体的成员
FILE结构体的作用
1、已经被打开的文件,在内核中用FILE结构体表示,文件描述符表中的表项指向FILE结构体
2、保存被打开文件所在的缓冲区基址,缓冲区的当前指针,缓冲区的大小,文件的读写模式以及缓冲区剩余字节的个数等