Какая разница между этим lseek, fseek, read, fread?

Я называю эти функции:

unsigned blah[5];
lseek(0, 100, SEEK_CUR);
read(0, blah, sizeof(blah));

а также

FILE *fr;
fr = fopen(arg[1], "r");
unsigned blah[5];
fseek(fr, 100, SEEK_CUR);
fread(blah, 1, sizeof(blah), fr);

И я запускаю первый код моего запуска этой команды:

cat TEXTFILE | ./a.out

Я запускаю второй код моего запуска этой команды:

./a.out TEXTFILE

Однако я получаю разные результаты. В то время как первый ищется правильно, поэтому он читает правильный текст, второй нет. Я хочу использовать второй формат, так что я сделал не так?

Ответы на вопрос(3)

Ваш ответ на вопрос