函数伪原型:
int shmget(key,size,flag)
①shmget函数用于创建一个共享存储区,返回值是一个表示共享存储区ID的整数。
②key:共享内存标识符,用来表示项目的ID(一般可以自己指定一个整数)。如果指定的项目ID已经存在,那么这个创建过程就变为获取该项目的共享存储区ID。
③size:共享存储区的大小,以字节为单位。
④flag:共享存储区的权限,用Linux的文件权限表示(如0777)。
函数伪原型:
void* shmat(mid,address,flag)
①shmat函数用于进程连接共享存储区,返回一个指向共享存储区指定位置的指针。
②mid表示所访问的共享存储区的ID(shmget函数的返回值就是创建的共享存储区的ID)。
③address:一般指定为NULL。
④flag:一般指定为0。
⑤返回值:返回值是一个void指针,因此需要根据需要从共享存储区中取出的数据类型对该指针进行强制类型转换。
函数伪原型:
int shmdt(address)
①shmdt函数用于实现一个进程与指定共享存储区的断开连接。
②参数address是shmat函数的返回值。
③返回值:断连成功返回0,断连失败返回-1。
函数伪原型:
int shmctl(mid,cmd,pointer)
①shmctl用于控制共享存储区进行一些操作,最常用的是删除共享存储区;
②返回值:操作成功返回0,操作失败返回-1;
③mid即需要操作的存储区的共享存储区ID;
④cmd表示操作类型,一般是删除操作,参数为IPC_RMID;
⑤pointer一般为NULL。