printf (* arg); execvp (* arg, arg);
Hier printf() -Anweisung druckt Wert = ls.But beim Ausführen von Programm Execvp gibt es keine solche Datei oder Verzeichnis. else if (pid == 0) {Erstellen einer einfachen Unix-Shell mit fork, execvp
printf(*arg);
execvp(*arg, arg);
char* error = strerror(errno);
printf("shell: %s: %s\n", arg[0], error);
return 0;
if(execvp(arg[0], arg)<0)
{
printf("***ERROR: execution failedn\n");
}
return 0;
}
Können Sie uns die Ausgabe des zweiten Ausdrucks zeigen, wo Sie 'arg [0]' drucken? Ein häufiger Fehler beim Schreiben einer Shell besteht darin, zu vergessen, das Zeilenumbruchzeichen vom Ende der vom Benutzer gelesenen Eingabezeile zu schneiden. –