이유를 이해하려고 노력 중이에요stlib.h에서 환경 변수 가져오기PATH
내 맞춤 변수 의 경우 (예 ANDROID_PRODUCT_OUT
: 이것이 다음과 관련이 있다고 생각합니다.
ANDROID_PRODUCT_OUT=test
printenv | grep ANDR
#nothing
내가 정의한 변수가 왜 나타나지 않습니까 printenv
? getenv("ANDROID_PRODUCT_OUT")==NULL
바이너리가 실행되는 동일한 쉘에 변수가 정의되어 있음에도 불구하고 이는 왜 관련이 있습니까 ?
답변1
글을 써서
ANDROID_PRODUCT_OUT=test
ANDROID_PRODUCT_OUT
현재 쉘에서 쉘 변수만 설정하면 됩니다. 포크된 프로세스(즉, 해당 셸에서 실행되는 모든 명령)에서 사용할 수 있는 환경 변수가 되도록 하려면 변수를 내보내야 합니다.
export ANDROID_PRODUCT_OUT
한 줄에 변수를 설정하고 자동 내보내기로 표시할 수도 있습니다.
export ANDROID_PRODUCT_OUT=test
printenv | grep ANDR # outputs: ANDROID_PRODUCT_OUT=test
모든 분기된 프로그램에 대한 변수를 자동으로 내보내지 않고 ./myprogram
실행하려는 특정 프로그램(예: )에서만 사용할 수 있도록 하려면 다음을 수행할 수 있습니다.
ANDROID_PRODUCT_OUT=test ./myprogram