进程间信号量同步问题
#在学习linux信号量时,想用来做两个进程之间的同步,但出现的问题想不明白,某个进程等不到信号量,代码如下:
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/sem.h>
#include <string.h>
#include <sys/shm.h>
#define REPEART_NUM 10
union semun
{
int val;
struct semid_ds *buf;
unsigned short *array;
};
int sem_p_op(int sem_id)
{
struct sembuf sem;
sem.sem_num = 0;
sem.sem_op = -1;
sem.sem_flg = SEM_UNDO;
if(semop(sem_id,&sem,1) < 0)
{
printf("sem_p error\n");
return -1;
}
return 1;
}
int sem_v_op(int sem_id)
{
struct sembuf sem;
sem.sem_num = 0;
sem.sem_o