semctl() 函数是控制信号量(集合)时使用的,不过最常用的是删除它。
Linux中的原型是:
int semctl(int semid, int semnum, int cmd, ...);
但是在其他的系统上原型可能有变化,
SUSv2 and SUSv3 specify that the final argument to semctl() is optional. However, a
few (mainly older) UNIX implementations (and older versions of glibc) prototyped
semctl() as follows:
int semctl(int semid, int semnum, int cmd, union semun arg);
This meant that the fourth argument was required even in the cases where it is not
actually used (e.g., the IPC_RMID and GETVAL operations described below). For full
portability, we specify a dummy final argument to semctl() in those calls where it is
not required.
所以我们往往定义一个,dummy变量放置在最后一个位置上。