#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/sem.h>
#include <sys/ipc.h>
#include <sys/types.h>
#define MAX_TEXT 1024
int main(int argc,char **argv){
int semid=0;
int count=0;
pid_t pd=0;
struct sembuf sops;
semid=semget((key_t)12345,3,0666|IPC_CREAT);
if(semid==-1){
perror("semget()");
exit(1);
}
printf("Begin fork()\n");
for(count=0;count<3;count++){
pd=fork();
if(pd<0){
perror("fork()");
exit(1);
}
if(pd==0){
printf("child[%d] creat!\n",getpid());
sops.sem_num=count;
sops.sem_op=-1;
sops.sem_flg=0;
if(semop(semid,&sops,1)==-1){
perror("semop()");
exit(1);
}
printf("child [%d] exit!\n",getpid());
exit(0);
}
}
exit(0);
}#include <stdio.h>
#include <stdlib.h>
#include