Пример #1
0
//主函数
int main(void)
{
    key_t key;
    int semid;
    char i;
    struct semid_ds buf;
    int value;

	printf("program running..\n");

    key=ftok("/ipc/sem",'a');//creat key

    if(-1==key)
    {
        printf("ftok创建key失败\n");
        //return ;
    }

    semid=CreateSem(key,100);//init value 100
    for(i=0;i<=3;i++)
    {
        Sem_P(semid);
        //Sem_V(semid);
    }
    value=GetvalueSem(semid);
    printf("sem value is %d\n",value);

    //DestroySem(semid);
    return;
    
    
    
}
Пример #2
0
int main(void)
{
	key_t key;									/*信号量的键值*/
	int semid;									/*信号量的ID*/
	char i;
	int value = 0;
	
	key = ftok("/ipc/sem",'a');					/*建立信号量的键值*/
	
	semid = CreateSem(key,100);					/*建立信号量*/
	for (i = 0;i <= 3;i++){						/*对信号量进行3次增减操作*/
		Sem_P(semid);							/*增加信号量*/
		Sem_V(semid);							/*减小信号量*/
	}
	value = GetvalueSem(semid);					/*获得信号量的值*/
	printf("信号量值为:%d\n",value);				/*打印结果*/
	
	DestroySem(semid);							/*销毁信号量*/
	return 0;
}