기본 "ls"와 execvp "ls" 호출의 차이점

기본 "ls"와 execvp "ls" 호출의 차이점

ac 파일 내부에서 execvp 시스템 호출을 사용하여 "ls" 명령을 호출했습니다. 하지만 약간의 차이는 있는 것 같습니다.

여기에 이미지 설명을 입력하세요

기본 ls 호출의 exe 파일은 녹색으로 강조 표시되지만 내 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");
}

답변1

ls쉘에는 다음에 대한 별칭이 있습니다 ls --color=auto.

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

색상을 출력하려면 옵션 ls을 사용하십시오 --color.

관련 정보