Да, это гарантируется операционной системой.
Даже если изменения еще не были внесены на диск, ОС использует свой буферный кэш для отражения изменений файла и гарантирует уровень атомарности для чтения и записи,ВСЕМ процессам.Таким образом, не только ваш процесс, но и любой другой процесс сможет увидеть изменения.
Что касается fsync()
, он только инструктирует операционную систему сделать все возможное, чтобы сбросить содержимое на диск.См. Также fdatasync()
.
Также я предлагаю вам использовать два файловых дескриптора: один для чтения, другой для записи.