forkした子プロセスは、環境変数も引き継ぐ。
getenv
putenv
setenv
unsetenv
environ (7) 大域変数
clearenv すべての環境変数をクリアする(空にする)posixでない!?
su コマンドを '-' 付加して実行すると、環境変数は引き継がない。
シェルをログインシェルにする。
/etc/profile.d/*.sh に環境変数を設定する各種スクリプトがある。
すべての環境変数を表示する。
$ gcc -Wall -o my_printenv my_printenv.c
#include <stdio.h>
extern char **environ;
int main()
{
char **ep = environ;
char *p;
FILE *fptr;
fptr = fopen("/tmp/xxx.txt", "a");
fprintf(fptr, "-------------\n");
while ((p = *ep++))
fprintf(fptr, "%s\n", p);
fclose(fptr);
return 0;
}
0 件のコメント:
コメントを投稿