#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標識符
新聞熱點
疑難解答