我在标准输入上有一个非常大的已知字节数,并希望在读取感兴趣的部分之前丢弃大量(也已知)字节(换句话说,我想 fseek 向前一个大整数,但 fseek 不是'没有为管道定义)。实现这一点的最简单方法似乎是对 fgetc 的大量调用,第一种替代方法是使用单个调用 fread 并分配一个大的临时指针来存储结果。第一个非常慢,第二个无缘无故地使用了可能无限量的内存。进行多次较小的读取可以解决无限的内存使用问题,但会引入一个空闲参数(块大小),对于每台机器和操作系统组合,它可能具有不同的最快值。
是否有任何替代方案能够以简洁、高效的方式实现这一目标?假定为 POSIX。