Linux環境下,進程地址空間相互獨立,每個進程各自有不同的用戶地址空間。任何一個進程的全局變量在另一個進程中都看不到,所以進程和進程之間不能相互訪問,要交換數據必須通過內核,在內核中開辟一塊緩沖區,進程1把數據從用戶空間拷到內核緩沖區,進程2再從內核緩沖區把數據讀走,內核提供的這種機制稱為進程間通信(IPC,InterProcess Communication)。
在進程間完成數據傳遞需要借助操作系統提供特殊的方法,如:文件、管道、信號、共享內存、消息隊列、套接字、命名管道等。隨著計算機的蓬勃發展,一些方法由于自身設計缺陷被淘汰或者棄用。現今常用的進程間通信方式有:管道 (使用最簡單);信號 (開銷最小);共享映射區 (無血緣關系);本地套接字 (最穩定)。
?