У меня есть два (POSIX) потоков, запись в лог-файл, как это:FSYNC не записывает данные в файл
pthread_mutex_lock(&log_mutex);
fprintf(LOG, "something...\n");
fsync(fileno(LOG));
pthread_mutex_unlock(&log_mutex);
файл открыт в main()
с fopen()
с режимом «в». Пока процесс выполняется, я ничего не вижу в файле с cat
или tail
, хотя после завершения процесса и файла fclose()
-ed все строки там.
Что я делаю неправильно?
Возможно [вы хотите использовать fflush()] (http://stackoverflow.com/questions/2340610/difference -between-fflush-и-FSYNC)? –