Я пишу программу перебора для перечисления определенного типа целочисленной последовательности (не важно, что это за последовательность на самом деле).
Чтобы получить результаты, я создаю файл и хочу записать все выходные данные программы в этот файл. Однако, кажется, что файл «застаивается» на 524 кбайт, даже если программа должна что-то записать в него. То есть файл непрерывно записывается до тех пор, пока не будет достигнут размер файла 524,0 КБ, и больше ничего не записывается в файл.
Я знаю, что что-то должно быть записано в файл, потому что каждый раз, когда я записываю что-то в этот файл, я printf
посылаю сообщение на экран, чтобы я знал, что что-то происходит.
Я использую C (довольно низкий уровень, т.е. только включая stdio.h
, stdlib.h
, time.h
, string.h
) в Ubuntu 10.04.
Я создаю файл следующим образом:
time_t rawtime;
char timeStamp[20];
struct tm* clocktime;
time(&rawtime);
clocktime = localtime (&rawtime);
strftime (timeStamp, 20, "%Y%m%d_%H%M%S", clocktime);
char dimStamp[80];
sprintf(dimStamp, "d%dl%d_", DIMENSION, MAXDEPTH);
strcat(dimStamp, timeStamp);
strcat(dimStamp, ".txt");
FILE *output = fopen(dimStamp, "w");
Кто-нибудь сталкивался с подобной проблемой и / или кто-нибудь знает, из чего это может исходить?
Edit:
Может ли быть так, что вывод в файл на C является несколько асинхронным, т. Е. Что мне нужно очистить буфер или что-то еще, чтобы файл был записан мгновенно?