1、ipcs 檢視當前系統中所有建立的ipc物件
2、ipcs -q 檢視建立的訊息佇列
3、ipcs -m 檢視建立的共享記憶體段
4、ipcs -s 檢視建立的訊號量陣列
5、ipcrm 刪除ipc物件
例如:ipcrm -q msqid 刪除標號為msqid的訊息佇列
system v提供的ipc通訊機制需要乙個key值,通過key值就可在系統內獲得乙個唯一的訊息佇列識別符號。
key值可以是人為指定的,也可以通過ftok函式獲得。
如果多個程序想通過ipc物件通訊,則必須找到唯一的標識,而唯一的標識是由key決定的,所以只要key知道,則就可以實現多個程序通訊。
#include
#include
key_t ftok(const char *pathname,int proj_id);
功能:
**pathname:**任意乙個檔名(檔名或者目錄名)
**proj_id:**目標值,範圍一般是0~127
返回值:
成功:鍵值
失敗:返回 -1
案例**:
#include
#include
#include
#include
intmain()
printf
("key = %#x\n"
,mykey)
;return0;
}
執行結果: ftok函式用法
系統建立ipc通訊 如訊息佇列 共享記憶體時 必須指定乙個id值。通常情況下,該id值通過ftok函式得到。ftok原型如下 key t ftok char fname,int id fname就時你指定的檔名 該檔案必須是存在而且可以訪問的 id是子序號,雖然為int,但是只有8個位元被使用 0 ...
系統函式ftok
系統建立ipc通訊 如訊息佇列 共享記憶體時 必須指定乙個id值。通常情況下,該id值通過ftok函式得到。ftok原型如下 key t ftok char fname,int id fname就時你指定的檔名,id是子序號。在一般的unix實現中,是將檔案的索引節點號取出,前面加上子序號得到key...
php函式ftok的坑
最近在做乙個go和php之間程序通訊的專案,想利用 共享記憶體來實現資料共享。技術本身並不複雜,go利用cgo繫結c的shm函式,php本身就有這個擴充套件,只要編譯的時候 enable shmop即可。但在實際過程中發現總是沒辦法獲取到共享記憶體,後面仔細檢查了一下發現是 ftok的實現不同。c ...