1、由open返回的文件描述符一定是最小的未用过的描述符,unix早期版本的描述符(即每个进程可以打开的描述符)19,现在增加到63.
2、当一个进程终止时,它所有的打开文件都由内核关闭。
3、lseek 函数,定位一个打开的文件
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fileds, off_t offset, int whence);
成功返回新文件的位移量,失败返回-1;
返回值可能为负数,所有测试它的返回值时应该确定是否为-1而不是是否为负数。
4、问题:stdin与stdin_fileno的区别
STDIN 属于标准库处理的输入流,其声明为 FILE 型的,对应的函数前面都有f开头,如fopen/fread/fwrite/fclose 标准库调用等
STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系 统级调用。
标准库内封装了系统 API 调用,如 fread 内部实现调用 read