#include #include #include #include #include main(int argc, char *argv[]) { sem_t *s; s = sem_open(argv[1], O_CREAT | O_RDWR, S_IRWXU | S_IRGRP | S_IROTH, 1); if( s == SEM_FAILED ){ fprintf(stderr, "failed to open semaphore %s\n", argv[1]); exit(1); } fprintf(stderr, "waiting...\n"); sem_wait( s ); fprintf(stderr, "sleeping...\n"); sleep(10); sem_post( s ); fprintf(stderr, "ok now...\n"); }