fflush
должен делать то, что вы хотите - он гарантирует, что весь вывод явно записывается в файл, а не, например, кэшируется для последующей записи.Таким образом, это перемещает данные из пользовательского пространства.
sync
может затем использоваться - это вызывает физическую запись всех изменений в буферизованном файле (хотя, согласно спецификации, нет необходимости блокировать до завершения записи,так что вы можете быть уверены, что они начались, но не окончены).