本文是自己總結的。
首先,linux下的訊號量,分為很多種。
首先分為核心訊號量和使用者態訊號量。
使用者態訊號量又分為posix訊號量和system v訊號量。(system v比較複雜,標頭檔案為#include ;posix訊號量比較簡單,#include )
然後posix訊號量又分為有名和無名訊號量。
這裡我們討論有名訊號量:
sem_open();
sem_wait(); //如果訊號量來了(要麼是sem_open()中的value大於等於1,要麼別的程序sem_post()了)訊號量-1,並且可以繼續執行(也就是進入mutex區域)
sem_post(); //訊號量+1
//銷毀訊號量的函式暫時不討論
linux下posix有名訊號量的簡單使用示例
include include include include include include includeint main pid t pid pid fork if pid 0 else if pid 0 sem unlink log return 0 2 在使用前,當前目錄需存在乙個log檔...
Linux下基於POSIX標準的共享記憶體操作示例
對於程序間通訊,之前一直是用管道進行實現。比如父子程序間使用pipe,無血緣關係的程序可以使用fifo。從來沒有想過使用共享記憶體,為什麼呢?大家還記得這本書吧 unix環境高階程式設計 上面講解了關於共享記憶體的操作,說實話,太麻煩了,真的不好用 有好多繁雜的介面,比如shmget,shmat,s...
linux下Posix訊息佇列的建立和刪除
前段時間學習執行緒讀寫鎖,找資料就找到了stevens老爺子的unp2,雖然對unp2 仰慕已久,始終沒有買來一讀,總是看電子書。本週買了本unp2 ipc,開始看下。對system v的訊息佇列,有一定的了解,但是對於posix的訊息佇列,並不熟悉。所以看了書的第五章,補習一下。看書看的很快,覺得...