gpt4 book ai didi

c++ - "fastfwd"文件可以是管道/套接字/fifo

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

我的函数获取一个FILE*来读取,它需要从某个非负偏移量开始读取。我可以使用 fseek(file, offset, SEEK_SET),但它在 stdin 上失败,例如。

如何确定 fseek 是否有效?如果没有,我可以读取并丢弃 offset 字节。

有没有一种方法可以在不分配读取缓冲区的情况下从 FILE 读取(并丢弃)?

最佳答案

您可以通过调用 fseek( file, offset, SEEK_SET) 并在出错时检查返回的 errno == EBADF 来测试 fseek 是否在该流上工作说“指定的流不是可查找的流”。

我认为您需要使用缓冲区读取和丢弃,但如果它只能是页大小字节并且您保留读取的字节数,则读取直到您执行相当于查找的操作。如果它是一个内存可映射文件,那么您可以不读而读,但是这样查找就会起作用。

关于c++ - "fastfwd"文件可以是管道/套接字/fifo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23998538/

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