您的位置:首页 > 运维架构 > Linux

linux互斥操作——信号量

2012-04-18 22:48 190 查看
简单的互斥操作:

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<stdlib.h>
#include<sys/types.h>
#include <sys/ipc.h>
#include<sys/sem.h>

int p(int sem_id)
{
struct sembuf sb;
sb.sem_num=0;
sb.sem_op=-1;
sb.sem_flg=SEM_UNDO;
if(semop(sem_id,&sb,1)==-1)
return 0;
return 1;
}
int v(int sem_id)
{
struct sembuf sb;
sb.sem_num=0;
sb.sem_op=1;
sb.sem_flg=SEM_UNDO;
if(semop(sem_id,&sb,1)==-1)
return 0;
return 1;
}

int main()
{
int sem_id;
if((sem_id=semget(IPC_PRIVATE,1,0)) == -1)
exit(-1);
p(sem_id);
//do something
v(sem_id);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐