实现代码
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/wait.h>
static int set_semvalue(void);
static int semaphore_p(void);
static int semaphore_v(void);
static void del_sem_set(void);
/* 定义自己的semun联合体*/
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
struct seminfo *__buf;
};
/* 定义全局变量sem_id保存信号量集的标识符*/
static int sem_id;
int main()
{
int i;
pid_t pid;
char ch;
/* 创建信号量集*/
sem_id = semget(IPC_PRIVATE, 1, 0666