環境変数

システム・プログラム

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/syspro-2000/2000-05-01 /process-env.html
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/
http://www.is.tsukuba.ac.jp/~yas/index-j.html

■環境変数


----------------------------------------------------------------------
   1:	/*
   2:	        env-print.c -- 環境変数を表示するプログラム
   3:	        ~yas/syspro1-1998/proc/env-print.c
   4:	        $Header: /home/lab2/OS/yas/syspro1-1998/proc/RCS/env-print.c,v 1.3 1998/05/25 14:47:51 yas Exp $
   5:	        Start: 1997/05/05 16:42:22
   6:	*/
   7:	extern char **environ ;
   8:	
   9:	main( int argc, char *argv[], char *envp[] )
  10:	{
  11:	    int i ;
  12:	        printf("envp == 0x%x\n",envp );
  13:	        printf("environ == 0x%x\n",environ );
  14:	        for( i=0 ; envp[i] ; i++ )
  15:	            printf("envp[%d]==0x%x, \"%s\"\n",i,envp[i],envp[i] );
  16:	}
----------------------------------------------------------------------

実行例。

----------------------------------------------------------------------
% ./env-print [←]
envp == 0x7fff2f4c
environ == 0x7fff2f4c
envp[0]==0x7fff300c, "HOME=/home/lab2/OS/yas"
envp[1]==0x7fff3023, "PATH=/home/lab2/OS/yas/bin:/usr/local/bin:/usr/local2/bin:/usr/local2/X11/bin:/usr/local/gnu/bin:/usr/local/X11/bin:/usr/local/tex/bin:/usr/java/bin:/usr/sbin:/usr/bsd:/sbin:/usr/bin:/usr/bin/X11:.:/usr/etc:/etc:/usr/freeware/bin"
envp[2]==0x7fff3109, "LOGNAME=yas"
envp[3]==0x7fff3115, "HZ=100"
...
envp[24]==0x7fff32eb, "LESSCHARSET=japanese-euc"
envp[25]==0x7fff3304, "IRCSERVER=130.158.87.200"
envp[26]==0x7fff331d, "KCODE=euc"
% []
----------------------------------------------------------------------

■練習問題

★練習問題34 printenvコマンド

printenv コマンドと似た動きをするプログラムを作りなさい。

★練習問題35 getenv()の利用

getenv() ライブラリ関数を利用して環境変数を得なさい。

★練習問題36 putenv()の利用

setenv() ライブラリ関数を利用して環境変数を変え、プログラムの動き(ラ イブラリ関数の動き)が変ることを確かめなさい。

★練習問題37 getenv()の実現

getenv() ライブラリ関数と似た動きをする関数を作りなさい。

★練習問題38 putenv()の利用

putenv() ライブラリ関数と似た動きをする関数を作りなさい。
↑[もどる] ←[4月24日] ・[5月01日] →[5月08日] [課題]
Last updated: 2000/04/30 20:12:42
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>