PDA

Visualizza versione completa : [C] problemino con execlp


Nanri
24-08-2006, 21.18.53
Allora ho due processi, un client ed un server, che scambiano messaggi correttamente tramite una fifo. il server dovrebbe eseguire un comando del client ma restituisce sempre errore. Ecco il codice del server
#include <stdio.h>
#include <fcntl.h>

typedef struct{
char text[20];
}message;

int main(){
int ris, fd, status;
message r;

ris=mkfifo("serv", O_CREAT|0666);
if(ris==-1){
printf("\nErrore nella creazione della fifo");
exit(-1);
}

fd = open("serv", O_RDWR);

while(1){
ris = read(fd, &r, sizeof(message));
if(ris==-1){
printf("\nErrore nella creazione della fifo\n");
exit(-1);
}
printf("- Il cliente ha scritto: %s\n", r.text);
ris= fork();
if(ris==-1){
printf("\nErrore nella creazione della fifo");
exit(-1);
}

if(ris==0) {
ris = execlp(r.text,r.text,0);
printf("\nImpossibile eseguire il comando\n");
}
else wait(&status);

}
}

PS: ma il tag code nn restituisce + il testo indentato?