int main(int argc, char* argv[]) { int semid; semid = sem_create(1234); sleep(5); sem_d(semid); return 0; }
void write_log (char* mess, int sid, int fid) { sem_d (sid); if (write (fid, mess, strlen (mess)) < 0) { printf("ERROR in write() work!\n"); exit(-1); } sem_a (sid); }
int main(int argc, char *argv[]) { int opt; opt = getopt(argc, argv, "cdpvs:gfm:"); if (opt == '?') exit(EXIT_FAILURE); if (opt == -1) { usage(); exit(EXIT_FAILURE); } key_t key = ftok(".", 's'); int semid; switch (opt) { case 'c': sem_create(key); break; case 'p': semid = sem_open(key); sem_p(semid); sem_getval(semid); break; case 'v': semid = sem_open(key); sem_v(semid); sem_getval(semid); break; case 'd': semid = sem_open(key); sem_d(semid); break; case 's': semid = sem_open(key); sem_setval(semid, atoi(optarg)); break; case 'g': semid = sem_open(key); sem_getval(semid); break; case 'f': semid = sem_open(key); sem_getmode(semid); break; case 'm': semid = sem_open(key); sem_setmode(semid, argv[2]); break; } return 0; }