Ich habe den Befehl „ls“ mithilfe des execvp-Systemaufrufs aus der ac-Datei heraus aufgerufen. Aber es scheint einen kleinen Unterschied zu geben.
Die EXE-Dateien im Standard-LS-Aufruf werden grün hervorgehoben, aber nicht in meinem eigenen EXEVP-LS-Aufruf. Übersehe ich etwas?
Dies ist der Codeabschnitt, der ls aufruft.
else if (rc == 0)
{
// child (new process)
printf("hello, I am child (pid:%d)\n", (int) getpid());
char *myargs[2];
myargs[0] = strdup("ls");
// program: "wc" (word count)
myargs[1] = NULL;//strdup("p3.c"); // argument: file to count
//myargs[2] = NULL;
// marks end of array
execvp(myargs[0], myargs); // runs word count
printf("this shouldn’t print out");
}
Antwort1
ls
in Ihrer Shell befindet sich ein Alias für ls --color=auto
:
$ alias ls
alias ls='ls --color=auto'
Wenn Sie die Farbgebung in der ls
Ausgabe wünschen, verwenden Sie die --color
Option.