請你來說一下共享記憶體相關api

2021-09-24 19:20:17 字數 847 閱讀 4057

linux允許不同程序訪問同乙個邏輯記憶體,提供了一組api,標頭檔案在sys/shm.h中。

1)新建共享記憶體shmget

int shmget(key_t key,size_t size,int shm***);

key:共享記憶體鍵值,可以理解為共享記憶體的唯一性標記。

size:共享記憶體大小

shmflag:建立程序和其他程序的讀寫許可權標識。

返回值:相應的共享記憶體識別符號,失敗返回-1

2)連線共享記憶體到當前程序的位址空間shmat

void *shmat(int shm_id,const void *shm_addr,int shm***);

shm_id:共享記憶體識別符號

shm***:標誌位

返回值:指向共享記憶體第乙個位元組的指標,失敗返回-1

3)當前程序分離共享記憶體shmdt

int shmdt(const void *shmaddr);

4)控制共享記憶體shmctl

和訊號量的semctl函式類似,控制共享記憶體

int shmctl(int shm_id,int command,struct shmid_ds *buf);

shm_id:共享記憶體識別符號

command: 有三個值

ipc_stat:獲取共享記憶體的狀態,把共享記憶體的shmid_ds結構複製到buf中。

ipc_set:設定共享記憶體的狀態,把buf複製到共享記憶體的shmid_ds結構。

ipc_rmid:刪除共享記憶體

buf:共享記憶體管理結構體。

簡單來說一下ui route

ui router被認為是angularui為開發者提供的最實用的乙個模組,它是乙個讓開發者能夠根據url狀態或者說是 機器狀態 來組織和控制介面ui的渲染,而不是僅僅只改變路由 傳統angularjs應用實用的方式 該模組為開發者提供了很多最檢視 view 額外的控制。開發者可以建立巢狀分層的檢視...

來說一下Ansible的簡明教程

ansible是當下比較流行的自動化運維工具,可通過ssh協議對遠端伺服器進行集中化的配置管理 應用部署等,常結合jenkins來實現自動化部署。除了ansible,還有像saltstack fabric 曾經管理100多台伺服器上的應用時也曾受益於它 puppet等自動化工具。相比之下,ansib...

請你回答一下fork和vfork的區別

fork 建立乙個和當前程序映像一樣的程序可以通過fork 系統呼叫 include include pid t fork void 成功呼叫fork 會建立乙個新的程序,它幾乎與呼叫fork 的程序一模一樣,這兩個程序都會繼續執行。在子程序中,成功的fork 呼叫會返回0。在父 程序中fork 返...