首先要注意乙個概念:ipc結構都是核心的結構。也就是說ipc結構由核心維護,對於每個程序都是公共的,不屬於某個特定程序。只有這樣,ipc結構才能支援它們「程序間通訊」的功能。
有兩個東西可以標識乙個ipc結構:識別符號(id)和鍵(key)。
id是ipc結構的內部名。內部即在程序內部使用,這樣的標識方法是不能支援程序間通訊的。
key就是ipc結構的外部名。當多個程序,針對同乙個key呼叫get函式(msgget等),這些程序得到的id其實是標識了同乙個ipc結構。多個程序間就可以通過這個ipc結構通訊。
已知乙個key,當希望利用這個key建立乙個新的ipc時,可以使用get函式,並在flag中指定ipc_creat位,例如佇列的情況,就是qid = msgget(key, ipc_creat)。apue15.6.1節提到:若隨後另乙個程序希望訪問該已建立的佇列,同樣可以使用get函式,但此時不應再指定ipc_creat位。但在實際使用中,即使第二個程序在msgget函式中指定了ipc_creat位,函式也不會返回錯誤,且兩個程序可以通過該佇列(ipc)傳遞訊息。
若在flag中同時指定了ipc_creat和ipc_excl位,則針對乙個已存在的ipc結構再呼叫get函式時,則會返回錯誤。
程序的狀態與識別符號
核心將所有程序存放在雙向迴圈鍊錶 程序鍊錶 中,鍊錶的節點都是task struct,稱為程序控制塊的結構。該結構包含了與乙個程序相關的所有資訊,如程序的狀態 程序的基本資訊 程序識別符號 記憶體相關資訊 父程序相關資訊 與程序相關的終端資訊 當前工作目錄 開啟的檔案資訊 所接收的訊號資訊等。下面將...
FILE結構體與fd檔案識別符號
開啟檔案 file fopen const char path,const char mode 關閉檔案 int fclose filee fp 讀檔案 size t fread void ptr,size t size,size t nmemb,file stream 寫入檔案 size t fw...
python中的保留字與識別符號
python中的保留字 python中的所有保留字是區分字母大小寫的。python保留字可以通過在idle中輸入以下兩行 檢視 import keyword keyword.kwlist python中的識別符號 命名規則 由字母 下劃線 和數字組成,第乙個字元不是數字 不能使用python中保留字...