c - 文件描述符和文件指针有什么区别?

标签 c operating-system file-descriptor file-pointer

<分区>

Possible Duplicate:
What's the difference between a file descriptor and file pointer?

如果我这样打开文件:

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

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

最佳答案

fp 是一个文件指针

文件指针:

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

文件描述符:

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

基于此link

关于c - 文件描述符和文件指针有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8191905/

相关文章:

ruby - 文件描述符 3 和 4 在 Ruby 中代表什么?

c++ - 为什么没有输入,poll 一直返回?

c++ - 四叉树的核心实现

operating-system - 如何区分 I/O 绑定(bind)和 CPU 绑定(bind)作业?

c - 一个结构的多个实例包含一个在编译时已知的不同长度的数组

c - 这两种具有结构的 typedef 实现是否等效?

c - 不同的逻辑地址

unix - 如何从 Rust 写入特定的原始文件描述符?

c - __builtin_popcountll 和_mm_popcnt_u64 之间有什么区别?

iphone - Xcode 说 : "No memory available to program now: unsafe to call malloc"