#include #include #include #include #include #include #define SHMSZ 1024 main() { int shmid; key_t key; char *shm, *s; /* * We need to get the segment named * "1234", created by the server. */ key = 1234; /* * Locate the segment. */ if ((shmid = shmget(key, SHMSZ, 0666)) < 0) { perror("shmget"); return 1; } /* * Now we attach the segment to our data space. */ if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) { perror("shmat"); return 1; } /* * Zero out memory segment */ memset(shm,0,SHMSZ); s = shm; /* * Client writes user input character to memory * for server to read. */ for(;;){ char tmp = getchar(); // Eat the enter key getchar(); if(tmp == 'q'){ *shm = 'q'; break; } *shm = tmp; } if(shmdt(shm) != 0) fprintf(stderr, "Could not close memory segment.\n"); return 0; }