1. 程式人生 > >system v 共享內存區

system v 共享內存區

include system

#include<sys/shm.h>

int shmget(key_t key,size_t size,int oflag); 返回:成功則為共享內存區對象,出錯為-1

key 的值可以是ftok的返回值,也可以是IPC_PRIVATE.

ftok() 是非親緣進程間

IPC_PRIVATE 是親緣進程間的

size以字節為單位指定內存區的大小。當實際操作為創建一個新的共享內存區時,必須指定一個不為0的size值。如果實際操作為訪問一個已存在的共享內存區,那麽size應為0.

oflag是讀寫權限值的集合,還可以是IPC_CREAT或IPC_CREAT|IPC_EXCL

void *shmat(int shmid, const void*shmaddr, int flag); 返回:成功為映射區的起始地址,出錯為-1


system v 共享內存區