printf("Wrong number of arguments %d\n", argc - optind);
usage();
}
- // Get shared memory segment
+ // get shared memory segment
shm_ptr = FindShm(shmname, MSGMAXSIZE);
if ( shm_ptr == NULL) {
perror("Cannot find shared memory");
perror("Cannot open semaphore");
exit(1);
}
+ // get semaphore
if ( sem_wait(sem) != 0) {
perror("cannot use semaphore");
exit(1);
}
- strncpy((char *) shm_ptr, argv[optind], MSGMAXSIZE);
- printf("Sleeping for %i seconds\n", t);
- sleep(t);
+ strncpy((char *) shm_ptr, argv[optind], MSGMAXSIZE); // modify message
+ printf("Sleeping for %i seconds\n", t); // print sleep value
+ sleep(t); // sleep
+ // release semaphore
if ( sem_post(sem) != 0) {
perror("cannot release semaphore");
exit(1);