一、進程間通信(IPC)方法
適用于同一臺主機上的進程間數據交換。
-
管道(Pipe)
-
匿名管道:單向通信,僅用于父子進程。
-
命名管道(FIFO):通過文件系統路徑訪問,支持無親緣關系進程。
-
-
消息隊列(Message Queue)
- 結構化消息(類型+數據),按類型讀取,支持異步通信。
- POSIX標準:mq_open(), mq_send(), mq_receive()
- System V:msgget(), msgsnd(), msgrcv()
-
共享內存(Shared Memory)
- 最高效的IPC:進程直接讀寫同一塊內存。
- 需同步機制(如信號量)避免沖突。
- POSIX:shm_open(), mmap()
- System V:shmget(), shmat()
-
信號量(Semaphore)
- 用于進程同步(如共享資源互斥訪問),不傳遞數據。
- POSIX:sem_open(), sem_wait(), sem_post()