#include
#include
#include
#include
#include
#include
#include
void main(int argc,char **argv[])
{
int i;
sem_t *sem;
int pid;
pid = fork();
if(pid == 0) {
sleep(1);
sem = sem_open("/tmp", 0);
for(i=0;i<3;i++){
sem_wait(sem);
printf("child do\n");
}
sem_close(sem);
}else {
sem = sem_open("/tmp", O_RDWR|O_CREAT, S_IWUSR|S_IRUSR, 0);
for(i=0;i<3;i++){
sem_post(sem);
printf("par do\n");
sleep(1);
}
sem_close(sem);
sem_unlink("/tmp");
}
}
注意编译需要-lrt参数
阅读(1303) | 评论(0) | 转发(0) |