gpt4 book ai didi

`read()` 后面可以直接跟 `write()` 吗? `write()` 后面可以直接跟 `read()` 吗?

转载 作者:行者123 更新时间:2023-11-30 18:27:53 27 4
gpt4 key购买 nike

In the C standard library, an output can't be followed by an input and vice versa.

对于Linux API,可以在read()后面直接跟write(),在write()后面直接跟read() ?如果是,为什么 Linux API 和 C 库 IO API 之间存在如此大的差异?

谢谢。

最佳答案

您的其他问题(链接)缺乏一些背景信息。当它说“当打开文件进行读写时(类型中的加号),有两个限制。”,它指的是使用 FILE * 流打开和操作的文件(例如、fopenfscanffprintf 等) - 不是对文件描述符进行操作的操作(例如,open读取写入等)。

只有 FILE * 流通常具有关联的 stdio 缓冲区;文件描述符没有任何关联的缓冲区(较低级别可能有其他缓冲区,例如在内核、磁盘 Controller 等中 - 但这是您通常不必担心的事情)。因此,read(2)write(2) 不会缓冲任何内容(无 stdio 缓冲区)。所以他们没有这样的 I/O 顺序限制。

关于 `read()` 后面可以直接跟 `write()` 吗? `write()` 后面可以直接跟 `read()` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52103562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com