tiagokos Postado Abril 14, 2011 Denunciar Share Postado Abril 14, 2011 Opa, tudo bom?Meu problema é o seguinte, tenho que fornecer um char para o meu processo pai, se for string manda para o filho 1 e o processo filho processo 1 imprime na tela, se for número manda para o processo filho 2 e o processo filho 2 imprime na tela.Tudo isso usando Shared Memory.Poderiam me ajudar, onde estou errando?#include <sys/shm.h> #include <stdio.h> #include <stdlib.h> int main() { int pid1; int pid2; char caracter; char *memoria; int shmid; char *ponteiro; shmid = shmget(IPC_PRIVATE, sizeof(int), IPC_CREAT|0666); memoria = shmat(shmid, 0, 0); pid1 = fork(); if (pid1 == 0) { ponteiro = (char *)memoria; if(ponteiro >= 'A' && ponteiro <= 'z') { printf("1 - %d\n", toupper((char *)ponteiro)); } } else if (pid1 > 0) { pid2 = fork(); if (pid2 == 0) { ponteiro = (char *)memoria; if(ponteiro >= '0' && ponteiro <= '9') { printf("2 - %s\n", ponteiro); } } else if (pid2 > 0) { printf("Informe um caracter:\n"); scanf("%c", &caracter); if (caracter >= '0' && caracter <= '9') { printf("É número!\n"); ponteiro = (char *)memoria; *ponteiro = caracter; strcpy(memoria, ponteiro); } else if (caracter >= 'A' && caracter <= 'z') { printf("É string!\n"); ponteiro = (char *)memoria; *ponteiro = caracter; strcpy(memoria, ponteiro); } else { printf("Ignorado.\n"); } } else { printf("Erro de processo.\n"); } } else { printf("Erro de processo.\n"); } wait(); return 0; }Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
tiagokos
Opa, tudo bom?
Meu problema é o seguinte, tenho que fornecer um char para o meu processo pai, se for string manda para o filho 1 e o processo filho processo 1 imprime na tela, se for número manda para o processo filho 2 e o processo filho 2 imprime na tela.
Tudo isso usando Shared Memory.
Poderiam me ajudar, onde estou errando?
Obrigado!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.