next up previous contents
Next: プロセス間通信をする Up: システムコールを使う Previous: 時間管理

その他のシステムサービスなど

それ以外の機能でDAQシステムで良く使うものを見てみます。環境変数はDAQ プログラムにとっても動作条件を設定するのに使える簡便な方法を提供します。 親プロセスで設定された環境変数は子プロセスに継承されます。親プロセスで 環境変数を設定してそれに従って子プロセスに仕事をさせます。子プロセスの 中からある特定の環境変数の値を得るにはgetenvを使います。これはシステム コールではなくCの実行時ライブラリです。例えば

        % setenv DATADIR /data1/e162/nov94

などと設定しておいてそのシェルから子プロセスを生成します。子プロセスの 中では、

        char    *dirname;



        dirname = getenv( "DATADIR" );

もしDATADIRが設定されていなければdirnameにはNULLが返ります。どのような 環境変数が設定されているか調べてまわるには外部変数environを参照します。

        extern  char    **environ;

この変数はDATADIR=/data1/e162/nov94などのような文字列へのポインターの 並びへのポインターです。

環境変数を設定する関数putenvもあります。自分と自分の子には反映します が、当然自分を呼び出した親には反映しません。環境変数はVMSではシンボル に近く、ロジカルネームとは異なります。そのためシステムワイドに使うデー タベースには環境変数は向いていません。ファイルや共有メモリーを使ってユー ザが実装する必要があります。



next up previous contents
Next: プロセス間通信をする Up: システムコールを使う Previous: 時間管理



Kinya Hibino
Sun Jan 14 21:36:40 JST 1996