|
|
我想从一个信号量集中获取信号量的数目, 应该怎么用semctl 系统调用实现啊?
我这里有一个函数, 可是好像不起作用!!! 不知道怎么改, 请帮帮!!
- int get_sem_count(int sid) //sid为已有的信号量集的ID
- {
- int rc;
- struct semid_ds mysemds;
- union semun semopts;
-
- /* Get current values for internal data structure */
- semopts.buf = &mysemds;
- if((rc = semctl(sid, 0, IPC_STAT, semopts)) == -1) {
- perror("semctl");
- exit(1);
- }
- /* return number of semaphores in set */
- return(semopts.buf->sem_nsems);
- }
复制代码 |
|