я использую fprintf
следующим образом. Все вроде бы нормально но fprintf
не печатать в мой файл вообще!
fprintf(pFile, "%s\n", "print");
Что-то странное в том, что fprintf
возвращается OK
, это возвращается 6
в приведенном выше коде, но не печать в файл!
Файл успешно создан, но пуст.
меняя его на printf
печатает и OK
тоже.
fprintf
и другие функции вывода stdio буферизуются, что означает, что вывод сначала сохраняется в памяти, а не распечатывается до следующего. При печати на экран с использованием стандартного вывода каждая новая строка очищает буфер, поэтому printf
вы увидите результат немедленно, но при печати в файл буфер не будет очищен, пока вы не напишите (например) 4096 байт. Можете добавить fflush(pFile);
очистить буфер, если вам по какой-то причине нужен вывод для быстрого появления в файле.
Буфер также очищается при вызове fclose
или неявное закрытие файла путем правильного выхода из программы, но если программа продолжает работать без закрытия файла или в случае сбоя, вам потребуется fflush
чтобы увидеть вывод файла.
Других решений пока нет …