У меня вопрос по поводу межпроцессного взаимодействия в операционных системах.
Могут ли два процесса обмениваться данными друг с другом, когда оба процесса открывают один и тот же файл (скажем, был создан до того, как оба процесса, поэтому оба процесса имеют обработчик файла), а затем обмениваются данными посредством записи в этот файл?
Если да, к чему этот метод? Я слышал, что 2 основных способа IPC - это совместная память и передача сообщений. Какой из них подпадает под этот метод?
Причина, по которой я не уверен, относится ли она к разделяемой памяти, заключается в том, что этот файл не сопоставлен с адресным пространством любого из этих процессов. И, насколько я понимаю, в разделяемой памяти область разделяемой памяти является частью адресного пространства обоих процессов.
Предположим, что процессы записывают в файл в каком-то заранее согласованном протоколе / формате, поэтому у обоих нет проблем с пониманием, где другой процесс записывает, когда и т. Д. Это предположение просто для понимания. В реальном мире, однако, это может быть слишком строгим, чтобы быть правдой и т. Д.
Если нет, что не так с этим сценарием? Неужели если два разных процесса открывают один и тот же файл, то изменения, сделанные первым процессом, не сохраняются в постоянном хранилище для просмотра другими, пока процесс не завершится? или что-то еще?
Любой реальный пример из Windows и Linux также должен быть полезен.
Спасибо