2

getenv() のすべての環境変数を保持するグローバル変数はどれですか? この var は env vars で満たされている glibc ファイルはどれですか?

**environ だと思いますが、bash で環境変数を設定すると、SSH_AGENT_PID 環境変数のみが出力されます。SSH_AGENT_PID が設定されているのはなぜですか?設定されているのはなぜですか?


DOCUMENT_ROOT='/foopath/'; export DOCUMENT_ROOT

int main(void)
{
extern char **environ;
printf("%s\n", *environ); // outputs: SSH_AGENT_PID=2822
}

4

1 に答える 1

6

char **environNULL文字列の -terminated 配列であるため、次のことを試してください。

extern char **environ;
char **p;
for (p = environ; *p; p++) {
    printf ("%s\n", *p);
}

つまり、environ[0]最初の環境変数へのポインタ、 2 番目などへのポインタです。配列environ[1]の最後の要素は です。environNULL

于 2010-06-27T14:27:37.167 に答える