exec 호출 시리즈에서 p와 e는 무엇을 나타냅니까?

exec 호출 시리즈에서 p와 e는 무엇을 나타냅니까?

lv매개변수가 목록을 통해 전달되는지 아니면 exec 호출 에 제공되는지를 나타냅니다 array(vector). p사용자의 경로와 e환경을 의미한다는 내용을 어디선가 읽었는데 그게 무슨 뜻인지 이해가 안 되시나요?

답변1

확인하다Exec 기능에 대한 Wikipedia 링크그리고이 링크는 exec() 호출을 사용하여 프로세스를 시작하는 방법에 관한 것입니다.

e – 새 프로세스 이미지에 명시적으로 전달된 환경 변수에 대한 포인터 배열입니다.

"e" 접미사가 붙은 버전은 환경을 프로그램에 전달합니다. 환경은 프로그램이 실행되는 "컨텍스트"입니다. 예를 들어, 단어 사전이 포함된 맞춤법 검사기가 있을 수 있습니다. 매번 명령줄에서 사전 위치를 지정하는 대신 환경에 제공할 수 있습니다.

l – 명령줄 인수가 함수에 개별적으로 전달됩니다(목록).

예를 들어 -t, -r 및 -l 매개변수("출력을 시간 역순으로 정렬하고 긴 버전의 출력을 표시함"을 의미함)를 사용하여 ls 명령을 호출하려는 경우 둘 중 하나를 지정할 수 있습니다.

p – PATH 환경 변수를 사용하여 실행할 경로 매개변수에 지정된 파일을 찾습니다.

"p" 접미사가 붙은 버전은 PATH 환경 변수의 디렉터리에서 실행 파일을 검색합니다. 모든 예제에는 실행 파일의 하드 코딩된 위치(/bin/ls 및 /usr/bin/spellcheck)가 있음을 알 수 있습니다. 다른 실행 파일은 어떻습니까? 특정 프로그램의 정확한 경로를 먼저 찾고 싶지 않다면 사용자가 프로그램에 실행 파일의 모든 위치를 검색하도록 지시하는 것이 좋습니다. 표준 PATH 환경 변수가 이를 수행합니다.

v – 명령줄 인수는 포인터 배열(벡터)로 함수에 전달됩니다.

매개변수 목록은 매개변수 벡터에 대한 포인터를 통해 지정됩니다.

다른 답변에서 언급했듯이,Unix 시스템 호출에 대한 이 링크추가 독서에도 좋습니다.

답변2

~에 따르면http://www.di.uevora.pt/~lmr/syscalls.html에서 접미사는 매개변수 유형을 나타냅니다.

    l  argn is specified as a list of arguments.

    v  argv is specified as a vector (array of character pointers).

    e  environment is specified as an array of character pointers.

    p  user's PATH is searched for command, and command can be a shell program

관련 정보