fread - 读取和跳过内存内容

时间:2013-05-06 21:10:01

标签: c linux

如果我正在阅读文件:

fptr = fopen(read_path, "rb");
fread(contents, size_in_bytes, count, fptr);

假设我想读取4个字节,然后跳过4个字节,然后读取4个,依此类推。我怎样才能做到这一点?具体来说,我将如何操纵/推进fptr

3 个答案:

答案 0 :(得分:7)

使用fseek的示例:

FILE * fptr;

fptr = fopen("example.txt", "rb");
fread(contents, 1, 4, fptr);
fseek(fptr, 4, SEEK_CUR);
// ...
fclose(fptr);

答案 1 :(得分:3)

我认为您正在寻找的功能是fseek

答案 2 :(得分:2)

如果要跳过的金额很小,您可以随时将其读入假人并处理它:

char contents[SOME_SIZE];
char dummy[4];

fptr = fopen(read_path, "rb");
fread(contents, 4, 1, fptr);
fread(dummy, 4, 1, fptr);
fread(contents+4, 4, count-1, fptr);