JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... t nsems , int semflg ); 説明 The semget () system call returns the System V semaphore set identifier associated with the argument key . It may be used either to o ... しい集合が作成される。 semflg に IPC_CREAT と IPC_EXCL の両方が指定された場合、 key に対応するセマフォ集合が既に存在すると、 semget () は失敗し、 errno に EEXIST が設定される (これは open (2) に O_CREAT | O_EXCL が指定された場合の動作と同じである)。 セマ ... ォでは意味を持たず、 書き込み (write) 許可はセマフォ値の変更 (alter) 許可として機能する)。 新規のセマフォ集合を作成する際、 semget () はセマフォ集合の情報を保持するデータ構造体 semid_ds を次のように初期化する ( semid_ds については semctl (2) を参照): • ... ... proj_id (0 であってはならない) の低位 8 ビットとを用いて、 key_t 型の System V IPC キーを生成する。 このキーは msgget (2), semget (2), shmget (2) などでの利用に適している。 同じファイルを示すあらゆるパス名と、同じ proj_id に対しては、結果の値は等しくな ... ので、結果は 32 ビットに過ぎない。 例えば /dev/hda1 と /dev/sda1 それぞれにあるファイルに対して、衝突は容易に起こりうる。 例 semget (2) を参照。 関連項目 msgget (2), semget (2), shmget (2), stat (2), sysvipc (7) この文書について この man ページは Linux m ... ... 2) などが独立したシステムコールとして実装されている。 関連項目 msgctl (2), msgget (2), msgrcv (2), msgsnd (2), semctl (2), semget (2), semop (2), semtimedop (2), shmat (2), shmctl (2), shmdt (2), shmget (2), sysvipc (7) この文書について この man ページ ... ... 造体は以下のように定義されている (強調されたフィールドは IPC_SET を使って設定可能である): struct ipc_perm { key_t __key; /* semget (2) に与えられるキー */ uid_t uid ; /* 所有者 (owner) の実効 UID */ gid_t gid ; /* 所有者の実効 GID */ uid_t cuid; /* 作成 ... kernel did not update sempid for SETALL operations. This was rectified in Linux 4.6. 例 shmop (2) 参照。 関連項目 ipc (2), semget (2), semop (2), capabilities (7), sem_overview (7), sysvipc (7) この文書について この man ページは Linux man-pages プロジェ ... ... o (3))、 UNIX ドメインソケット ( unix (7)) に設定される許可にも影響を与える。 一方、umask は、そのプロセスが ( msgget (2), semget (2), shmget (2) を使って) 生成する System V IPC オブジェクトに設定される許可には 影響を与えない。 関連項目 chmod (2), mkdi ... ... に対して ACL を 設定でき、オブジェクトへの許可をユーザー単位、グループ単位で制御することが できる。 注意 System V セマフォ ( semget (2), semop (2) など) は古いセマフォ API である。 POSIX セマフォは System V よりも 簡単で、うまく設計されたインターフェース ... ... ning one semaphore */ shmid = shmget(IPC_PRIVATE, MEM_SIZE, IPC_CREAT | 0600); if (shmid == -1) errExit("shmget"); semid = semget(IPC_PRIVATE, 1, IPC_CREAT | 0600); if (shmid == -1) errExit("shmget"); /* Attach shared memory into our address space */ a ... ... ning one semaphore */ shmid = shmget(IPC_PRIVATE, MEM_SIZE, IPC_CREAT | 0600); if (shmid == -1) errExit("shmget"); semid = semget(IPC_PRIVATE, 1, IPC_CREAT | 0600); if (shmid == -1) errExit("shmget"); /* Attach shared memory into our address space */ a ... ... ning one semaphore */ shmid = shmget(IPC_PRIVATE, MEM_SIZE, IPC_CREAT | 0600); if (shmid == -1) errExit("shmget"); semid = semget(IPC_PRIVATE, 1, IPC_CREAT | 0600); if (shmid == -1) errExit("shmget"); /* Attach shared memory into our address space */ a ... ... exit(EXIT_FAILURE); } A further example of the use of semop () can be found in shmop (2). 関連項目 clone (2), semctl (2), semget (2), sigaction (2), capabilities (7), sem_overview (7), sysvipc (7), time (7) この文書について この man ページは Linux man ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。