プロセスの環境変数の確認

875 ワード

envコマンドを使用して、システムの現在の環境変数を表示します.実行中のプロセスの環境変数を表示したい場合があります.
Linuxシステムの下で、プロセスの環境変数情報は/proc//environファイルで表示できます.
$ cat /proc//environ

このコマンドの出力フォーマットは読みにくく、すべての情報が同じ行に詰まっています.trコマンドを使用して空の文字を改行に置換すると、すべての環境変数が行で表示されます.
$ cat /proc//environ | tr \\0 \

Mac OSXシステムの下では、印刷プロセスの環境変数を示す-Eのオプションを使用できます.
$ ps -p  -wwwE

しかし、上記の方法はすべての状況をカバーしていません.プロセスの環境変数は、プロセス初期化時にローダによってロードされた環境変数(システム、親プロセス、またはexecシステムから呼び出されたパラメータ)と、プロセス実行中にsetenv関数によって動的に設定または変更された環境変数の2つの部分から来ます.前のコマンドには、第1の部分の環境変数のみが表示されます.
プロセスの環境変数は、グローバル変数char **__environに保存されます.プロセスによって動的に変更された環境変数を表示するには、まず、このプロセスのシンボルテーブルが必要であり、ptraceシステム呼び出し(gdbの使用など)によって表示されます.