Когда созданный файл становится видимым для других процессов в ext4? - PullRequest
0 голосов
/ 24 мая 2018

Рассмотрим этот псевдокод и файловую систему ext4:

f = open("/tmp/new_file", "w")
write(f, "Test")
close(f)

В другом процессе я пытаюсь сразу открыть /tmp_newfile:

Вопросы

  1. Может ли другой процесс открыть файл?
  2. Какое содержимое видит другой процесс?Это Test?

Ожидания

Я ожидаю, что (1) будет верным (метаданные, вероятно, синхронизированы между процессами), но (2) будет ложным (данные могут бытьс буферизацией)

Еще вопросы

Как я могу убедиться, что мои изменения в файле видны другим процессам?flush, кажется, работает, но это плохо сказывается на производительности, поскольку вызывает принудительную запись на диск.Есть ли что-то вроде soft-flush, которое делает изменения видимыми для других процессов, не сбрасывая их на диск?

1 Ответ

0 голосов
/ 24 мая 2018

Гарантируется ли, что другой процесс может видеть файл?

Нет, это не гарантируется.

Третий процесс может удалить файл, даже еслиу вас это открыто.

...