📄 sem.c
字号:
/*
* =====================================================================================
*
* Filename: sem.c
*
* Description:
*
* Version: 1.0
* Created: 2008年11月24日 21时14分05秒
* Revision: none
* Compiler: gcc
*
* Author: 杨小合
* Company: 北华航天学院
*
* =====================================================================================
*/
#include"sem.h"
int set_semvalue(int sem_id,int value)
{
union semun sem_union;
sem_union.val=value;
if(semctl(sem_id,0,SETVAL,sem_union)==-1)
return 0;
return 1;
}
int semaphore_p(int sem_id)
{
struct sembuf sem_p;
sem_p.sem_num=0;
sem_p.sem_op=-1;
sem_p.sem_flg=SEM_UNDO;
if(semop(sem_id,&sem_p,1)==-1)
{
fprintf(stderr,"semaphore_p failed\n");
return 0;
}
return 1;
}
int semaphore_v(int sem_id)
{
struct sembuf sem_v;
sem_v.sem_num=0;
sem_v.sem_op=1;
sem_v.sem_flg=SEM_UNDO;
if(semop(sem_id,&sem_v,1)==-1)
{
fprintf(stderr,"semaphore_v failed\n");
return 0;
}
return 1;
}
void del_semvalue(int sem_id)
{
union semun sem_union;
if(semctl(sem_id,0,IPC_RMID,sem_union)==-1)
{
fprintf(stderr,"Failed to delete semaphore\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -