在程序通訊應用中會用到共享記憶體,這就涉及到了ipc,與ipc相關的命令包括:ipcs、ipcrm(釋放ipc)。ipcs命令是linux下顯示程序間通訊設施狀態的工具。我們知道,系統進行程序間通訊(ipc)的時候,可用的方式包括訊號量、共享記憶體、訊息佇列、管道、訊號(signal)、套接字等形式[2]。使用ipcs可以檢視共享記憶體、訊號量、訊息佇列的狀態。
當下系統是centos,執行ipcs命令檢視
說明:具體的用法總結如下:
1、顯示所有的ipc設施
# ipcs -a2、顯示所有的訊息佇列message queue
# ipcs -q3、顯示所有的訊號量
# ipcs -s4、顯示所有的共享記憶體
# ipcs -m5、顯示ipc設施的詳細資訊
# ipcs -q -i idid 對應shmid、semid、msgid等。-q對應設施的型別(佇列),檢視訊號量詳細情況使用-s,檢視共享記憶體使用-m。
6、顯示ipc設施的限制大小
# ipcs -m -l-m對應設施型別,可選引數包括-q、-m、-s。
7、顯示ipc設施的許可權關係
# ipcs -c8、顯示最近訪問過ipc設施的程序id。# ipcs -m -c
# ipcs -q -c
# ipcs -s -c
# ipcs -p9、顯示ipc設施的最後操作時間# ipcs -m -p
# ipcs -q -p
# ipcs -t10、顯示ipc設施的當前狀態# ipcs -q -t
# ipcs -m -t
# ipcs -s -t
# ipcs -ulinux上的ipcs命令,不支援unix上的-b、-o指令,同樣unix中不支援-l、-u指令,所以在編寫跨平台的指令碼時,需要注意這個問題。
刪除ipc
ipcrm -m| -q| -s shm_id例如,我們在以0x12345678為key建立了乙個共享記憶體,可以直接使用ipcrm -m 0x12345678來刪除共享記憶體區域。
下面的命令可以釋放所有已分配的共享記憶體:
ipcs -m | awk '$2 ~ /[0-9]+/
' | while read s; do sudo ipcrm -m $s; done
Linux 共享記憶體
一 概念 共享記憶體是被多個程序共享的一部分物理記憶體,是程序間共享資料的最快的一種方法。二 實現 分為兩個步驟 1 建立共享記憶體。2 對映共享記憶體。1 建立 int shmget key t key,int size,int shm 當key的取值為 ipc private 時,將建立一塊新的...
linux共享記憶體
linux共享記憶體使用 標頭檔案 include 1 建立共享記憶體 int shmget key t key,size t size,int shm 建立成功以後會返回乙個共享記憶體id,建立失敗返回 1。2 獲取共享記憶體 void shmat int shmid,const void shm...
linux 共享記憶體
共享記憶體解決的問題是 任意兩個程序之間的通訊如果是有名管道,是沒有辦法對管道中間的資料獲取讀和寫操作的,只能是兩段的資料,那麼如何對所有的資料進行操作 共享記憶體 共享記憶體也是通過核心來完成 命令 ipcs m p s 共享記憶體的工作機制如下所示 首先linux系統執行的每乙個程式,都是乙個程...