APUE에서
일부 환경 변수는 Single UNIX 사양의 POSIX.1에 의해 정의되고, 다른 환경 변수는 XSI 옵션이 지원되는 경우에만 정의됩니다. 그림 7.7에는 단일 UNIX 사양에 의해 정의된 환경 변수가 나열되어 있으며 이를 지원하는 구현이 나와 있습니다. POSIX.1에 의해 정의된 모든 환경 변수는 •;로 표시됩니다. 그렇지 않으면 XSI 옵션의 일부입니다. 이 책에 설명된 네 가지 구현에는 여러 가지 추가 구현 종속 환경 변수가 사용됩니다. ISO C는 환경 변수를 정의하지 않습니다.
POSIX 환경 변수가 셸에 대해 정의되어 있습니까? 아니면 반드시 셸을 실행할 필요가 없는 프로세스에 대해 정의되어 있습니까?
감사해요.
내 게시물은 다음에서 영감을 얻었습니다.기본 환경 변수는 무엇입니까?
답변1
그들은한정된다른 프로세스와 마찬가지로 반드시 그럴 필요는 없습니다.존재하다어떤 과정에서든(일반적으로).
POSIX는 의미를 제공합니다많은 환경 변수에. 이는 사전으로 보아야 합니다. POSIX에 변수가 정의되어 있다는 사실은 해당 변수가 반드시 존재해야 한다는 의미는 아니지만(정의에 그렇게 명시되어 있지 않은 경우) 변수가 프로세스 환경에 존재하는 경우 해당 값(및 POSIX 정의에 따라 관련되고 실행되는 일관된 유틸리티를 위해.
다음 두 섹션의 변수가 애플리케이션이나 유틸리티 실행 중에 환경에 나타나는 경우 아래 설명된 의미를 부여해야 합니다. 일부는 사용자가 로그인할 때 구현에 의해 환경에 배치됩니다. 모든 것은 사용자 또는 현재 프로세스의 조상에 의해 추가되거나 변경될 수 있습니다.
항상 그렇듯이 "환경에 배치"는 관련 프로세스 트리(변수 세트로 생성된 하위 프로세스)에 영향을 미치는 것으로 이해해야 하므로 전역 환경이 없습니다.