-
Notifications
You must be signed in to change notification settings - Fork 54
shmctl
果冻虾仁 edited this page Aug 22, 2017
·
2 revisions
共享内存的控制
#include <sys/ipc.h>
#include <sys/shm.h>
int shmctl(int shmid, int cmd, struct shmid_ds *buf);由shmget函数生成,不同的key值对应不同的id值。
操作字段,包括:
- 公共的IPC选项(ipc.h中):
IPC_RMID //删除IPC_SET //设置ipc_perm参数IPC_STAT //获取ipc_perm参数IPC_INFO //如ipcs
- 共享内存自己的选项(shm.h中)【需要root权限】
SHM_LOCK //锁定共享内存段SHM_UNLOCK //解锁共享内存段
Talk is cheap, show me the code!
C语言API包含部分标准C的API、POSIX标准的系统编程API(一些Linux独有的系统API会单独注明)。
大部分头文件源码在/usr/include目录下。
因为涉及到大量的POSIX编程。所以最好下载POSIX函数的man手册。
apt-get install manpages-posix
apt-get install manpages-posix-dev
默认安装了manpages-dev,所以不装POSIX的man手册是可以查看绝大部分API的。
但是不装的话,有些API是不能看到的,比如posix_spawn函数。
yum install man-pages.noarch
关于目录
左侧的目录并非以函数为索引依据,主要是以系统的man手册页面为索引依据。
比如exec里面包含6个函数、pipe里面包含pipe()和pipe2()两个函数,但是它们都是属于一个man页面中。