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()
, Есть много разных реализаций; проверьте страницу руководства вашей системы, чтобы узнать больше.