View Full Version : PIPE ET FORK HELP US
salve abbiamo dei problemi di programmazione in c sull'utilizzo delle funzioni fork e pipe...
Facendo una fork non riusciamo a far entrare il programma nel processo figlio...nonostante non sbagliamo assolutamente nulla(almeno pensiamo)nel codice...
Ci appaiono messaggi tipo hangup....o broken pipe...a cosa sono dovuit?se volete posto il semplice codice...grazie mille
Un po' di codice non sarebbe male :)
ciao ;)
#include<curses.h>
#include<stdlib.h>
#include<unistd.h>
#include<stdio.h>
typedef struct pos{
int x;
int y;
char c;
}pos;
void nemici(int *);
void controllo(int*);
pos nemico;
int main(void){
int filedesnem[2];
int pidnem;
initscr();
noecho();
curs_set(0);
if (pipe(filedesnem)== -1){
perror("Errore");
exit(1);
}
nemico.x = 1;
nemico.y = 1;
nemico.c = '@';
pidnem = fork();
if (pidnem == - 1){
perror("Errore");
exit(1);
}
else if(pidnem == 0){
nemici(filedesnem);
}
controllo(filedesnem);
kill(pidnem, 1);
endwin();
return(0);
}
void nemici(int *pipein){
close(pipein[0]);
write(pipein[1], &nemico, sizeof(nemico));
}
void controllo(int *pipeout){
pos appoggio;
close(pipeout[1]);
read(pipeout[0], &appoggio, sizeof(appoggio));
mvaddch(appoggio.y, appoggio.x, appoggio.c);
}
Questo è il codice...i nomi hanno un senso nell'orbita del progettino che devo fare...nn prendetemi per malato di mente :doh: grazie
Fenomeno85
24-04-2006, 18:55
quando fai una fork e vuo i dividere padre da figlio devi anche mettere un if pid > 0 così entrerà solo il figlio
~§~ Sempre E Solo Lei ~§~
ma nel figlio non entra per quel motivo?
Fenomeno85
25-04-2006, 09:27
il problema è che dopo anche il padre esegue quel codice
~§~ Sempre E Solo Lei ~§~
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.