3 int main(int argc, char *argv[])
5 int t = 0, sem_t * sem, void *shm_ptr;
6 char *shmname = "messages";
7 char *semname = "messages";
9 // get shared memory segment
10 shm_ptr = FindShm(shmname, MSGMAXSIZE);
11 if ( shm_ptr == NULL) {
12 perror("Cannot find shared memory");
16 if ( (sem = sem_open(semname, 0)) == SEM_FAILED ) {
17 perror("Cannot open semaphore");
21 if ( sem_wait(sem) != 0) {
22 perror("cannot use semaphore");
25 strncpy((char *) shm_ptr, argv[optind], MSGMAXSIZE); // modify message
26 printf("Sleeping for %i seconds\n", t); // print wait time
29 if ( sem_post(sem) != 0) {
30 perror("cannot release semaphore");