Questo è il codice:
Codice: Seleziona tutto
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<string.h>
#include<unistd.h>
void remove_new_line(char *s) { //funzione che rimuove il carattere newline dall'hostname
while (*s) {
if (*s == '\n') {
*s='\0';
}
s++;
}
}
int main() {
char hostname[32];
char command[64];
int hnf;
hnf=open("/etc/hostname", O_RDONLY); //determina l'hostname da /etc/hostname
read(hnf,hostname,sizeof(hostname));
remove_new_line(hostname);
close(hnf);
printf("%s@%s >",getenv("USER"),hostname);
do{
scanf("%s",&command); //legge continuamente i comandi
if(strcmp(command,"exit")==0) { //in caso di exit, esce dal ciclo
break;
}
else if(system(command)){
printf("%s: comando non trovato\n",command); //qui sta il problema
}
else{
system(command); //esegue il comando
}
printf("%s@%s >",getenv("USER"),hostname); //visualizza nuovamente il prompt
} while(1); //ciclo infinito
printf("Bye!\n"); //saluto
return 0;
}
Codice: Seleziona tutto
mauro@mauro-pc >haha
sh: haha: comando non trovato
haha: comando non trovato
mauro@mauro-pc >
Grazie in anticipo a tutti.