fread() ведет себя странно

У меня есть проблема в моей программе на C, где после того, как я использую fread()указатель файла иногда идет в конец файла.

Я постараюсь объяснить лучше - код выглядит примерно так:

dummy = ftell(fp);
fread(&buf, sizeof(unsigned char), 8, fp);
dummy = ftell(fp);

где fp указатель файла на открытый файл (открыл его с помощью "w+", я использую его как двоичный файл, и я знаю, что там тоже должен быть символ "b", но я слышал, что это не очень важно для добавь это..),dummy это просто unsigned long переменная и buf является unsigned char[8]

теперь, при отладке, на ftell перед fread, dummy 262062 на ftell после fread, dummy 262640, хотя я только "переместил" 8 байтов..

Кто-нибудь есть идеи, что может быть причиной этого..? Спасибо за вашу помощь:)

1 ответ

Если вы не используете b открыть файл, ftell() не возвращает правду, просто своего рода "печенье", которое полезно только для fseek(), Есть много разных реализаций; проверьте страницу руководства вашей системы, чтобы узнать больше.

Другие вопросы по тегам