日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
execl |
子プロセスで起動されるイメージの名前を渡します。この関数は非リエントラントです。
#include <unistd.h>int execl (const char *file_spec, const char *arg0, ..., (char *)0); (ISO POSIX-1)
int execl (char *file_spec, ...); (Compatability)
file_spec
子プロセスで起動される新しいイメージの完全なファイル指定。arg0, ...
ヌル区切り文字列を指すポインタのシーケンス。POSIX-1 形式を使用する場合は,少なくとも 1 つの引数を指定する必要があり,その引数は新しいプロセス・ファイル名 (またはその最後のコンポーネント) と同一である文字列を指さなければなりません ( このポインタは NULL ポインタでも構いませんが,その場合は, execleは何も実行しません )。最後のポインタは NULL ポインタでなければなりません。互換形式を使用するときも,この規則が適用されます。
exec関数の動作方法を理解するには,次の構文に示すように,OpenVMS システムが HP C プログラムを呼び出す方法を考慮する必要があります。
int main (int argc, char *argv[], char *envp[]);
識別子 argc は引数の数です。 argv は引数文字列の配列です。配列の最初のメンバ (argv[0]) にはイメージの名前が格納されます。引数は配列の 2 番目以降の要素に格納されます。配列の最後の要素は常に NULL ポインタです。
exec関数は,実行時システムが他の HP C プログラムを呼び出すのと同じ方法で子プロセスを呼び出します。 exec関数は,子で起動されるイメージの名前を渡します。この値は argv[0] に格納されます。しかし,これらの関数は,引数および環境情報を子に渡す方法が異なっています。
- 引数は個別の文字列で渡すことができ ( execl, execle, execlp),文字列配列で渡すこともできます ( execv, execve, execvp)。
- 環境は配列で明示的に渡すことができ ( execleと execve),親の環境から取得することもできます ( execl, execv, execlp, execvp)。
exec関数を起動する前に vforkが呼び出された場合は, exec関数が終了したときに,制御は vfork呼び出しの時点の親プロセスに返されます。 vforkが呼び出されていない場合は, exec関数は,子が実行を終了するまで待ち,実行が終了すると,親プロセスを終了します。詳細については, vforkおよび『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 5 章を参照してください。
-1 異常終了を示します。
目次 | 索引 |
|