Я предполагаю, что вы используете эту функцию при открытии файла:
FILE *fopen(const char *path, const char *mode);
Когда вы программируете под Linux b
игнорируется, так как это не имеет никакого эффекта. От справочная страница :
Строка режима может также включать
буква «б» либо как последний символ
действовать или как символ между символами в любом из
два-ха-
Строки acter описаны выше. Это строго для совместимости
с
С89 и не имеет никакого эффекта; 'b' игнорируется на всех POSIX, соответствующих
Sys-
Темы, включая Linux. (Другие системы могут обрабатывать текстовые файлы и
двоичный
файлы по-разному, и добавление «b» может быть хорошей идеей, если вы делаете
I / O
в двоичный файл и ожидать, что ваша программа может быть перенесена на
не-Unix
сред.)
Что касается Windows (источник здесь ):
b: Открыть в двоичном формате (не переведено)
Режим; переводы с участием
возврат каретки и перевод строки
символы подавляются.
Итак, вывод:
Если вам нужен портативный доступ к двоичным данным в коде C, для совместимости используйте «b».