SEM_CONTROL_C 属于信号量编号还是信号量的值

SEM_CONTROL_C 属于信号量编号还是信号量的值

/*
 * 占用资源
 * @params semid 信号量集合的id
 * @param semnum 信号量的编号
 * */
int sem_p(int semid,int semnum)
{
  struct sembuf sops;
  sops.sem_num = semnum;
  sops.sem_op = -1; // 占用资源
  sops.sem_flg = SEM_UNDO; // 当进程终止时,会自动释放信号量
  return semop(semid,&sops,1);
}

老师,本次视屏中说的是值,上一节课的sem_p这方法的实现是编号,这块是信号量编号还是信号量的值?

sem_p(semid,SEM_CONTROL_P) // 这里占用资源以后为什么会从1变成0,没太理解


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
山行老师 2023-03-19 10:13:12
是编号;
semid表示信号量集合是哪一个;
semnum表示的是集合中第几个信号量;
sem_op=-1表示上述的信号量的值需要-1;
所以这里的semnum表示第几个信号量;
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师