#include #include #include #include #include #include // 无血缘关系的进程的同步 void printer(char *msg) { while (*msg) { printf("%c", *msg++); fflush(stdout); sleep(1); } } int main(int argc, char const *argv[]) { // 打开信号量文件 sem_t *sem1 = sem_open("mysem1", O_CREAT | O_RDWR, 0666, 1); sem_t *sem2 = sem_open("mysem2", O_CREAT | O_RDWR, 0666, 0); #ifdef DISEN sem_wait(sem2); printer("disen666\n"); sem_post(sem1); #else sem_wait(sem1); printer("jack888\n"); sem_post(sem2); #endif sem_close(sem1); sem_close(sem2); return 0; }