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