Разница в вызове по умолчанию «ls» и execvp «ls» [дубликат]

На этот вопрос уже есть ответ:

I вызвал команду "ls", используя системный вызов execvp изнутри файла ac. Но вроде бы небольшая разница.

enter image description here

EXE-файлы в вызове ls по умолчанию выделены зеленым, но не в моем собственном вызове execvp ls. Я что-то упустил?

Это фрагмент кода, который вызывает 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");
}
2
задан 26 February 2016 в 09:40

1 ответ

ls в Вашей оболочке псевдоним к ls --color=auto:

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

, Если Вы хотите раскрашивающий ls вывод, используйте --color опция.

4
ответ дан 2 December 2019 в 02:19

Другие вопросы по тегам:

Похожие вопросы: