ファイル位置指示子について質問です。あるwhileループの中で
fseek(before, 2L, SEEK_CUR);
fgetpos(before, pos);

while( (c=fgetc(before)) != '<' ) count++;
fsetpos(before, pos);

fread(score, 1, count, before);
printf("%s\n", score);

としたところファイル位置指示子が戻ってこず、'<'の後の内容が出力されます。
何がいけないのでしょうか?