文件描述符的行为是否与文件指针完全相同,只是它们的类型不同?那么为什么我们需要它们两个,结果是如此多的“重复”函数,如open和fopen,close和fclose?如果我们总是只使用fd或fp会不会更简单,那么我们会记得更少?
答案 0 :(得分:1)
文件描述符是打开的“文件”的原始句柄(我说“文件”,因为许多不严格说文件的东西使用文件I / O支持,这是设备的基本级别 I / O支持)。
文件指针是描述符的包装器(即fd
API提供的基本I / O之上的一个层),它使用它的API能够做的不仅仅是读取,写,刷新,查询和关闭设备。缓冲等事情。基本上,指针指向存储器上下文,其中可以存储与打开文件的特定实例相关的其他有用的东西。在OOP获得语言支持之前,将其视为真正的原始OOP。
对于99.999%的编程,您不需要使用fd
;我在3个不同的平台上对C进行了全程编程了大约10年,在那段时间里,我相信我可能会使用fd
大约一次,也许是十几次。