Diferencia en la llamada predeterminada "ls" y execvp "ls"

Diferencia en la llamada predeterminada "ls" y execvp "ls"

Llamé al comando "ls" usando la llamada al sistema execvp desde el interior del archivo ac. Pero parece haber una ligera diferencia.

ingrese la descripción de la imagen aquí

Los archivos exe en la llamada ls predeterminada están resaltados en verde, pero no en mi propia llamada execvp ls. ¿Me estoy perdiendo de algo?

Este es el fragmento de código que llama a ls.

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");
}

Respuesta1

lsen tu shell hay un alias para ls --color=auto:

$ alias ls
alias ls='ls --color=auto'

Si desea colorear el lsresultado, utilice la --coloropción.

información relacionada