#include <sys/ipc.h>
key_t ftok (const char *pathname, int id);
Returns: IPC key if OK, -1 on error
struct ipcqerm {
uid_t uid; /* owner's user id */
gid_t gid; /* owner's group id */
uid_t cuid; /* creator's user id */
gid_t cgid; /* creator's group id */
mode_t mode; /* read - write permissions */
ulong_t seq; /* slot usage sequence number */
key_t key; /* IPC key */
};
- 调用ftok,给它传递pathname和id
- 指定key为IPC_PRIVATE,这将保证会创建一个新的、唯一的IPC对象
- oflag参数中的某些位初始化ipc_perm结构的mode成员。SEM_A的后缀A代表alter改变
- ipc_perm结构中cuid和cgid成员分别设置为调用进程的有效用户ID和有效组ID,这两个成员合称为创建者ID
- ipc_perm结构中的uid和gid成员也分别设置为调用进程的有效用户ID和有效组ID,这两个成员合称为属主ID
- 考虑由内核维护的用于打开文件的文件描述符。它们是些小整数,只在单个进程内有意义,是进程特定的值。然而,System V IPC标识符却是系统范围的,而不是特定于进程的
- 为了避免短时间内重用System V IPC标识符
新闻热点
疑难解答