gpt4 book ai didi

c - 从管道读取时如何在可移植 C 中寻求前进

转载 作者:太空狗 更新时间:2023-10-29 16:53:51 26 4
gpt4 key购买 nike

因为 fseek() 不能在管道上工作,有什么方法可以模拟向前搜索?天真的方法是使用 fread() 并丢弃读入内存缓冲区的内容。对于避免巨大缓冲区的巨大寻求,您将一遍又一遍地使用相同的缓冲区,最终读取仅使用缓冲区的一部分。

但这是唯一的方法吗?有没有另一种方法可以避免缓冲区和潜在的多次读取?

最佳答案

搜索在管道上没有意义,因为输入是动态产生的(不存储在磁盘上)。 lseek 内核系统调用未针对管道实现。

还要记住,管道本质上是一个有限、固定大小的生产者-消费者缓冲区。当它变满时,生产者将暂停,直到消费者读取最旧的数据。

关于c - 从管道读取时如何在可移植 C 中寻求前进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5806522/

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