10.3.5 控制信号量——第三个参数详解

10.3.5 控制信号量——第三个参数详解

控制信号量的函数为semctl函数,其定义如下:

int semctl(int semid, int semnum, int cmd,/* union semun arg*/);

某些特定的操作需要第四个参数,第四个参数是联合体,很不幸的是这个联合体需要程序员自己定义,代码如下所示:

union semun { 
	int val;              /* value for SETVAL */ 
	struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ 
	u_short *array;       /* array for GETALL & SETALL */ 
};

根据第三个参数cmd值的不同,semctl支持以下命令:

结构体semid_ds

struct semid_ds{
	struct ipc_perm  sem_perm;     /* operation permission struct */

	struct sem      *sem_base;     /* ptr to array of semaphores in set */

	uishort          sem_nsems;    /* #of semaphores in set */

	time_t          sem_otime;    /* time of last semop() */

	time_t          sem_ctime;    /* time of creation or last IPC_SET */

};

1.IPC_R

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值