【问题标题】:Why do we need both file descriptor and file pointer [duplicate]为什么我们需要文件描述符和文件指针[重复]
【发布时间】:2014-04-07 23:01:33
【问题描述】:

除了类型不同之外,文件描述符的行为是否与文件指针完全相同?那么为什么我们同时需要它们,结果又需要这么多“重复”的函数,比如 open 和 fopen、close 和 fclose?如果我们总是只使用 fd 或 fp 不是更简单,那么我们要记住的东西就更少了吗?

【问题讨论】:

    标签: c filesystems file-descriptor


    【解决方案1】:

    文件描述符是打开“文件”的原始句柄(我说“文件”,因为许多不是严格意义上的文件的东西都使用文件 I/O 支持,这是 设备的基本级别 I/O 支持)。

    文件指针是描述符(即fd API 提供的基本 I/O 之上的一层)的包装器,它使使用它的 API 能够做的不仅仅是读取、写入,刷新,查询和关闭设备。缓冲之类的东西。基本上,指针指向一个内存上下文,其中可以存储与打开文件的特定实例相关的其他有用的东西。在 OOP 获得语言支持之前,真正将其视为原始 OOP。

    对于 99.999% 的编程,您永远不需要使用 fd;我在 3 个不同的平台上全职编写 C 语言大约 10 年,在那段时间里,我相信我可能会使用 fd 大约,也许,十几次。

    【讨论】:

      猜你喜欢
      • 2012-01-01
      • 2011-01-26
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      相关资源
      最近更新 更多