lzanzan
27-05-2009, 10:02
ciao,
ho un problema con la funzione fgets(). io devo leggere da stdin delle parole per poi processarle, il mio problema è che se non inserisco nessuna parola e premo il tasto invio il mio programma esce dandomi segmentation fault.
vi posto il codice:
printf("\nPer connetterti ad un server utilizza il comando connect to + nome biblioteca\n");
sattivo=0;
while(sattivo!=1){
printf("-->");
fgets(string,sizeof(string),stdin);
decriptacomando(string, comando, ¶metro);
printf("%s",comando[0]);
if((strcmp(comando[0], "connect")==0)&&(strcmp(comando[1], "to")==0)){
// Apro la fifo del server in scrittura
if((sscrittura = open(comando[2],O_WRONLY))<0){
printf("\tIl server non è avviato\n");
printf("\tRiprovare a connettersi\n");
}
else{
sattivo=1;
}
}
else if(strcmp(comando[0], "exit")==0){
printf("arrivederci\n");
exit(1);
}
else {
printf("Comando inserito per la connessione non corretto. RIPROVA\n");
}
}
printf("il server è attivo\n");
ho un problema con la funzione fgets(). io devo leggere da stdin delle parole per poi processarle, il mio problema è che se non inserisco nessuna parola e premo il tasto invio il mio programma esce dandomi segmentation fault.
vi posto il codice:
printf("\nPer connetterti ad un server utilizza il comando connect to + nome biblioteca\n");
sattivo=0;
while(sattivo!=1){
printf("-->");
fgets(string,sizeof(string),stdin);
decriptacomando(string, comando, ¶metro);
printf("%s",comando[0]);
if((strcmp(comando[0], "connect")==0)&&(strcmp(comando[1], "to")==0)){
// Apro la fifo del server in scrittura
if((sscrittura = open(comando[2],O_WRONLY))<0){
printf("\tIl server non è avviato\n");
printf("\tRiprovare a connettersi\n");
}
else{
sattivo=1;
}
}
else if(strcmp(comando[0], "exit")==0){
printf("arrivederci\n");
exit(1);
}
else {
printf("Comando inserito per la connessione non corretto. RIPROVA\n");
}
}
printf("il server è attivo\n");