20 Linux系统中信号量互斥问题

请大佬讲解一下这是怎么设置的互斥,尤其讲一下semctl的作用。求求了!

#define mutex 5


int chopstick[5] = {0,1,2,3,4};

int sem_id = -1;


if((sem_id = semget(IPC_PRIVATE,6,0600)) < 0)

{

perror("创建信号量失败\n");

exit(1);

}

if(semctl(sem_id,mutex,SETVAL,1) == -1)

{

perror("sem赋值失败\n");

exit(1);

}

for(i=0;i<5;i++){

if(semctl(sem_id,chopstick[i],SETVAL,1) == -1)

{

perror("sem赋值失败\n");

exit(1);

}

}



请先 登录 后评论
  • 0 关注
  • 0 收藏,1465 浏览
  • FenrisX 提出于 2021-12-17 11:20

相似问题