5

可能重复:
文件描述符和文件指针有什么区别?

如果我这样打开文件:

FILE *fp = fopen("mr32.txr","r");

那么fp是文件指针还是文件描述符?它们之间有什么区别?

4

3 回答 3

4

它是一个指向FILE结构的指针,如果这就是你要问的。文件描述符是一个整数。该FILE结构及其相关 API 是 C 标准的一部分。文件描述符及其相关功能不是。在实践中,您可以互换使用任一组函数,尽管此处和那里的默认行为存在一些显着差异。您可以阅读手册页以确定哪些函数采用哪种参数。在具有文件描述符的系统上,您通常可以使用该函数从打开的文件描述符fdopen(3)中获取结构并以其他方式进行。FILEfileno(3)

于 2011-11-19T04:31:57.620 回答
4

fp 是一个文件指针

文件指针:

  1. 是高级接口
  2. 传递给 fread() 和 fwrite() 函数
  3. 包括缓冲、错误指示和EOF检测等。
  4. 提供更高的便携性和效率。

文件描述符:

  1. 低/内核级处理程序
  2. 传递给 UNIX 系统调用的 read() 和 write()
  3. 不包括缓冲和此类功能
  4. 便携性较差,效率低下

基于此链接

于 2011-11-19T04:41:12.617 回答
2

FILE是一个包含文件信息的结构,包括文件描述符。

于 2011-11-19T04:34:20.363 回答