System V IPC 总的包括:消息队列,共享内存、信号量。
IPC的使用注意:
1.IPC资源仅在本机中使用,不能够跨网络使用。
2.IPC的资源生存周期与内核相同。除非删除,不然会与系统的生存周期相同。
3.(重要)每个IPC都有一个关键字key。每个IPC资源都有唯一的整型标识符,进程可以使用id对此资源进行访问。
4.在IPC资源中又会有一个结构体Xid_ds进行其属性的记录。其中X可以是sem(信号量)、shm(共享内存)、msg(消息队列)。
5.有两个命令可以方便我们查看IPC的装太。ipcs(显示所有IPC资源状态)和ipcrm(用于删除IPC资源对象)如下图ipcs:
6.IPC资源无执行权限,对应其他进程可以对应有读、写权限。
7.两个系统调用:Xget系统调用用于创建IPC资源。Xcrl系统调用用于对于IPC资源的控制。
上图同文件类似,key通过Xget创建一个IPC资源,得到一个资源id,然后用户通过id访问IPC资源,Xid_ds同上文可以理解,一个结构体用于实现资源的记录。
ftok函数用于根据文件名等信息生成一个键值。
下图为ftok函数的使用: