JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... t; /* # waiting for zero */ unsigned short semncnt; /* # waiting for increase */ pid_t sempid; /* PID of process that last semop () は semid で指定されたセマフォ集合の選択されたセマフォに対して操作を行う。 sops は nsops 個の要素の配列を指し、配列の各要 ... ばならない。 semval が 0 ならば、操作は直ちに行われる。 semval が 0 でない場合、 sem_flg に IPC_NOWAIT が指定されていれば、 semop () は失敗し、 errno に EAGAIN が設定される (このとき sops に対する操作は全く実行されない)。 sem_flg に IPC_NOWAIT が指定さ ... ドを停止 (sleep) する。 • semval が 0 になった: このとき semzcnt の値は 1 減算される。 • セマフォ集合が削除された: このとき semop () は失敗し、 errno に EIDRM が設定される。 • 呼び出し元スレッドがシグナルを捕獲した: このとき semzcnt の値は 1 減算され、 ... ... t; /* # waiting for zero */ unsigned short semncnt; /* # waiting for increase */ pid_t sempid; /* PID of process that last semop () は semid で指定されたセマフォ集合の選択されたセマフォに対して操作を行う。 sops は nsops 個の要素の配列を指し、配列の各要 ... ばならない。 semval が 0 ならば、操作は直ちに行われる。 semval が 0 でない場合、 sem_flg に IPC_NOWAIT が指定されていれば、 semop () は失敗し、 errno に EAGAIN が設定される (このとき sops に対する操作は全く実行されない)。 sem_flg に IPC_NOWAIT が指定さ ... ドを停止 (sleep) する。 • semval が 0 になった: このとき semzcnt の値は 1 減算される。 • セマフォ集合が削除された: このとき semop () は失敗し、 errno に EIDRM が設定される。 • 呼び出し元スレッドがシグナルを捕獲した: このとき semzcnt の値は 1 減算され、 ... ... > で以下のように定義されている: struct semid_ds { struct ipc_perm sem_perm; /* 所有権と許可 */ time_t sem_otime; /* 最後の semop の時刻 */ time_t sem_ctime; /* 作成時刻/semctl() により 最後に変更が行われた時刻 */ unsigned long sem_nsems; /* 集合内のセ ... is is an ipc_perm structure (see below) that specifies the access permissions on the semaphore set. sem_otime Time of last semop (2) system call. sem_ctime Time of creation of semaphore set or time of last semctl () IPCSET , SETVAL , or SETALL operati ... set, or the caller must be privileged. The argument semnum is ignored. IPC_RMID セマフォ集合をただちに削除し、その集合上の semop (2) コールでブロックされている全てのプロセスを目覚めさせる (エラー値が返されて、 errno に EIDRM が設定される)。 呼び出した ... ... d = %d\n", shmid, semid); /* Wait for semaphore value to become 0 */ sop.sem_num = 0; sop.sem_op = 0; sop.sem_flg = 0; if (semop(semid, &sop, 1) == -1) errExit("semop"); /* Print the string from shared memory */ printf("%s\n", addr); /* Remove shared ... shmat"); memcpy(addr, argv[3], len); /* Decrement semaphore to 0 */ sop.sem_num = 0; sop.sem_op = -1; sop.sem_flg = 0; if (semop(semid, &sop, 1) == -1) errExit("semop"); exit(EXIT_SUCCESS); } 関連項目 brk (2), mmap (2), shmctl (2), shmget (2), capabil ... ... d = %d\n", shmid, semid); /* Wait for semaphore value to become 0 */ sop.sem_num = 0; sop.sem_op = 0; sop.sem_flg = 0; if (semop(semid, &sop, 1) == -1) errExit("semop"); /* Print the string from shared memory */ printf("%s\n", addr); /* Remove shared ... shmat"); memcpy(addr, argv[3], len); /* Decrement semaphore to 0 */ sop.sem_num = 0; sop.sem_op = -1; sop.sem_flg = 0; if (semop(semid, &sop, 1) == -1) errExit("semop"); exit(EXIT_SUCCESS); } 関連項目 brk (2), mmap (2), shmctl (2), shmget (2), capabil ... ... d = %d\n", shmid, semid); /* Wait for semaphore value to become 0 */ sop.sem_num = 0; sop.sem_op = 0; sop.sem_flg = 0; if (semop(semid, &sop, 1) == -1) errExit("semop"); /* Print the string from shared memory */ printf("%s\n", addr); /* Remove shared ... shmat"); memcpy(addr, argv[3], len); /* Decrement semaphore to 0 */ sop.sem_num = 0; sop.sem_op = -1; sop.sem_flg = 0; if (semop(semid, &sop, 1) == -1) errExit("semop"); exit(EXIT_SUCCESS); } 関連項目 brk (2), mmap (2), shmctl (2), shmget (2), capabil ... ... 立したシステムコールとして実装されている。 関連項目 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 ページは Linux ma ... ... name() renameat() [POSIX.1-2008 で追加された] rewind() rewinddir() scandir() [POSIX.1-2008 で追加された] scanf() seekdir() semop() setgrent() sethostent() setnetent() setprotoent() setpwent() setservent() setutxent() sigpause() [POSIX.1-2008 で追加され ... s (2) と getrusage (2) が返す情報がプロセス全体の情報でなくスレッド単位の情報である。 - スレッド間でセマフォのアンドゥ値 ( semop (2) 参照) を共有しない。 - スレッド間でインターバルタイマーを共有しない。 - スレッドは共通の nice 値を共有しない。 - POSXI ... ... を 設定でき、オブジェクトへの許可をユーザー単位、グループ単位で制御することが できる。 注意 System V セマフォ ( semget (2), semop (2) など) は古いセマフォ API である。 POSIX セマフォは System V よりも 簡単で、うまく設計されたインターフェースを提供してい ... ... ), epoll_pwait (2), poll (2), ppoll (2), select (2), pselect (2). * System V IPC インターフェイス: msgrcv (2), msgsnd (2), semop (2), semtimedop (2). * スリープ用のインターフェイス: clock_nanosleep (2), nanosleep (2), usleep (3). * io_getevents (2). s ... end (2), sendto (2), and sendmsg (2), if a send timeout ( SO_SNDTIMEO ) has been set. * epoll_wait (2), epoll_pwait (2). * semop (2), semtimedop (2). * sigtimedwait (2), sigwaitinfo (2). * Linux 3.7 and earlier: read (2) from an inotify (7) file descr ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。