Tag: 寻求

SEEK_HOLE和SEEK_DATA在Ubuntu 12.04.2 LTS中不起作用

编译时我得到错误: cc holetest.c -o holetest holetest.c: In function ‘test_seek’: holetest.c:48:19: error: ‘SEEK_HOLE’ undeclared (first use in this function) holetest.c:48:19: note: each undeclared identifier is reported only once for each function it appears in holetest.c:51:19: error: ‘SEEK_DATA’ undeclared (first use in this function) make: *** [holetest] Error 1 如果我删除SEEK_HOLE和SEEK_DATA,我没有问题。 我错过了包含或图书馆吗? Makefile文件: all: holetest holetest: holetest.c rm […]

便携式C如何在从管道读取时向前寻找

由于fseek()在管道上不起作用,有哪些方法可以模拟前进? 天真的方法是使用fread()并将读取的内容丢弃到内存缓冲区中。 为了避免巨大的缓冲区,你只需要使用缓冲区的一部分就可以反复使用相同的缓冲区。 但这是唯一的方法吗? 有没有另一种方法可以避免缓冲区和潜在的多重读取?

我可以使用标准库在C中寻找超过2GB的位置吗?

我正在制作一个用C语言读取磁盘映像的程序。我正在尝试制作可移植的东西,所以我不想使用太多特定于操作系统的库。 我知道有很多磁盘映像是非常大的文件,但我不确定如何支持这些文件。 我已经阅读了fseek ,它似乎使用了一个long int ,它不能保证支持超过2 31 -1的值。 fsetpos似乎使用fpos_t支持更大的值,但无法指定绝对位置。 我也有关于使用fseek几个相对寻求,但我不确定这是否便携。 如何在C中支持可移植地支持大文件?