Словил пару раз глюк: Есть файл, открытый как f = fopen(FileName, «a+b»); В файл пишутся данные fwrite(&data.val, sizeof(data.val), 1, f); val имеет тип u_int64_t При этом периодически в файле начинают встречаться записи не по 8 байт, а по 9 байт. и во всех случаях в этих записях встречается \r\n
Т.е. как я понял при fwrite если во входных данных встречается \n, то в файл записывается \r\n
Запись производится только из одного потока. Чтение не используется. Периодически используется fflush(f);
Система: Linux Debian-60-squeeze-64-minimal 2.6.32-5-amd64 #1 SMP Tue Jun 14 09:42:28 UTC 2011 x86_64 GNU/Linux
Такое ощущение что иногда игнорируется тот факт что файл открыт в двоичном режиме. При этом специально спровоцировать глюк не удаётся в тестовой программе.