文件描述符和文件指针

文件描述符:

  在Linux系统中,设备是以文件形式存在的,要对该设备进行操作就必须先打开这个文件,打开文件就会获得文件描述符,他是一个很小的正整数。每个进程在PCB中保存着一份文件描述符表,文件描述符就是这个表的索引,每个表项都有一个指向已打开文件的指针。文件描述符的优点:兼容POSIX标准,许多Linux和UNIX系统调用都依赖于他。文件描述符的缺点:不能移植到UNIX以外的系统上去 ,也不直观。

文件指针:

  C语言中使用的是文件指针而不是文件描述符作为I/O句柄。文件指针向进程用户区中的一个被称为FILE结构的数据结构。FILE结构包括一个缓冲区和一个文件描述符。而文件描述符是文件描述符表的一个索引,因此从某种意义上说文件指针就是文件句柄的句柄(在Windows系统上,文件描述符被称为文件句柄)。FILE *比fd更适合跨平台,应该多用fopen,少用open

原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/6284757.html