Arquivo 2: cliente.c #include #include #include #include #include #include #include #include #define SHMSZ 27 char SEM_NAME[]= ____________________________________; int main() { char ch; int shmid; key_t key; char *shm,*s; sem_t *mutex; //Nomeie (identifique) o segmento compartilhado ___________________________________________________; //Crie e inicialize semáforo existente ___________________________________________________; if(mutex == SEM_FAILED) { perror("Leitor: impossível executar o semáforo"); _______________________________________________; exit(-1); } // Crie o segmento de memória compartilhado com a chave “key” shmid = ___________________________________________; if(shmid<0) { perror("Leitor: falha ao criar segmento compartilhado"); exit(-1); } //attach this segment to virtual memory ____________________________________________________; //Inicie a leitura (acesso exclusivo) ____________________________________________________; for(s=shm;*s!=NULL;s++) { ________________________________________________; putchar(*s); ________________________________________________; } //”Sinaliza” o fim da leitura, fecha o semáforo e exclui o segmento *shm = _____________________________________________; ____________________________________________________; ____________________________________________________; exit(0); }