Решение найдено. (ex: Нужна помощь коллективного разума)
потому что мой уже трещит по швам :).
Неведомая фигня происходит на моем компе. У меня есть вот такая программка:
// a.c #includeint main (int argc, char** argv) { FILE* f = fopen("x", "w"); fprintf(f, "Hello!\n"); printf("Hello!\n"); fclose(f); }
Компилирую, запускаю:
a.exe > y
— файл "y" создается, а "x" — нет.
Windows 7, компилятор mingw (Visual Studio C++ тоже пробовал).
И такая хрень происходит с любым моим C'шным скомпилированным кодом — файлы не создаются. Потом вдруг рррраз, создались! А потом снова не создаются.
Update: Спасибо Лехе aka "Android", решение найдено. Это был Avast, мать его. Стоит выключить его файловый экран, все работает, включаю - перестает. И, блин, хоть бы он голос подал, что ему моя программа подозрительна. Так нет, он молча все делает - без намека на проблему. И, как пишут на форумах, эта проблема с Avast не только у меня появилась после его обновления до версии 7.
3 комментария:
Странное поведение. Могу предположить, что содержимое файла осело до лучших времен в буфере операционной системы. Не поможет ли явный вызов fflush()?
fflush - первое, что я попробовал сделать. Не работает.
Если оно и осело в недрах ОС, то навсегда.
Это был антивирус Avast.
>:-E
Отправить комментарий