したがって、セマフォとsembufで設定さ semid
れたセマフォがある場合num_of_sems
*deleter_searchers_down
struct sembuf *deleter_searchers_down
= malloc(sizeof (*deleter_searchers_down) * num_of_sems);
for (i = 0; i < num_of_sems; ++i) {
(deleter_searchers_down + i)->sem_op = -1;
(deleter_searchers_down + i)->sem_num = i;
(deleter_searchers_down + i)->sem_flg = SEM_UNDO;
}
semop(semid, deleter_searchers_down, num_of_sems);
semop の呼び出しは、セット内のすべてのセマフォを一度に下げようとしますか、それとも、0 である最初のセマフォを下げようとするとブロックし、他のプロセスがその特定のセマフォを上げた後に続行しますか?