歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux下進程間通信

Linux下進程間通信大致有以下幾種:

  1.socket

  2.管道(包括匿名管道適用於父子進程,命名管道)

  3.信號量

  4.共享內存

  5.消息隊列

  1.socket

  socket可以用於本地進程間通信也可以用於遠程間,是最常用的。

  2.管道--匿名管道

  一般用pipe創建,在父子間通信。在父進程中關閉讀/寫管道,在子進程中關閉寫/讀管道。

  2.管道--命名管道

  一般用mkfifo來創建。如果沒有說明管道是非阻塞的,那麼一個為讀打開的管道將阻塞直到有進程為寫打開此FIFO。同樣如果為寫打開的管道將阻塞直到有進程為讀打開此FIFO。

  3.信號量

  一個進程可以用kill發送信號至另外一個進程。

  4.共享內存

  使用函數:shmget、shmat、shmctl、shmdt

  用shmget函數得到一塊內存,並用shmat設置為允許本進程使用這塊共享內存。使用完以後用shmdt刪除內存塊。

  5.消息隊列

  使用函數:msgget、msgsnd、msgrcv、msgctl

  使用步驟同上

Copyright © Linux教程網 All Rights Reserved