我有一個關於操作系統中的進程間通信的問題。IPC通過寫入文件?
兩個進程可以通過打開同一個文件(也就是說在兩個進程之前創建,所以兩個進程都有文件處理程序)進行通信,然後通過寫入該文件進行通信?
如果是,那麼這個方法是什麼?我聽說IPC的兩種主要方式是通過共享內存和消息傳遞。這些方法之一是哪一種? 原因是,我不確定它是否屬於共享內存,因爲這個文件沒有映射到任何這些進程的地址空間。而且,從我的理解,在共享內存中,共享內存區域是這兩個進程的地址空間的一部分。
假設進程以某種預先約定的協議/格式寫入文件,所以兩者在知道其他進程寫入的位置以及何時等方面都沒有問題。這種假設僅僅是爲了理解。但在現實世界中,這可能過於嚴格,無法保持真實等。
如果否,那麼這種情況有什麼問題?是否如果兩個不同的進程打開同一個文件,那麼第一個進程所做的更改不會刷新到永久存儲中供其他人查看,直到進程終止?或者是其他東西?
來自Windows和Linux的任何現實世界的例子也應該是有用的。
謝謝,