_execl、_wexecl
更新 : 2007 年 11 月
新しい子プロセスを読み込んで実行します。
intptr_t _execl(
const char *cmdname,
const char *arg0,
... const char *argn,
NULL
);
intptr_t _wexecl(
const wchar_t *cmdname,
const wchar_t *arg0,
... const wchar_t *argn,
NULL
);
パラメータ
cmdname
実行するファイルのパス。arg0, ...argn
パラメータへのポインタのリスト。
戻り値
成功すると、この関数は呼び出し側のプロセスには戻りません。戻り値が -1 の場合はエラーであり、その場合にはグローバル変数 errno が設定されます。
errno 値 |
説明 |
---|---|
E2BIG |
引数リストと環境設定に必要な領域が 32 KB を超えています。 |
EACCES |
指定されたファイルにロック違反、または共有違反が発生しています。 |
EINVAL |
無効なパラメータ (1 つ以上のパラメータが null ポインタまたは空の文字列でした)。 |
EMFILE |
開いているファイルが多すぎます (指定したファイルを開けないと、そのファイルが実行可能かどうかを判定できません)。 |
ENOENT |
ファイル名またはパス名が見つかりません。 |
ENOEXEC |
指定したファイルが実行可能ファイルでない、または実行可能ファイルの書式が無効です。 |
ENOMEM |
メモリ不足のため、新しいプロセスを実行できません。または、使用できるメモリが壊れています。または、無効なブロックがあるため、呼び出し側プロセスが正しく割り当てられていません。 |
解説
これらの各関数は、新しいプロセスを読み込んで実行します。各コマンド ライン引数は、個別のパラメータとして渡されます。最初の引数はコマンドまたは実行可能ファイルの名前で、2 番目の引数は最初の引数と同じにする必要があります。この引数は、実行されるプロセスの argv[0] になります。3 番目の引数は、実行されるプロセスの最初の引数 argv[1] になります。
Visual C++ 2005 では、_execl 関数はパラメータの検証を行います。cmdname または arg0 が null ポインタまたは空の文字列の場合、「パラメータの検証」に説明されているように、これらの関数は無効なパラメータ ハンドラを呼び出します。実行の継続が許可された場合は、errno を EINVAL に設定し、-1 を返します。新しいプロセスは実行されません。
必要条件
関数 |
必須ヘッダー |
オプション ヘッダー |
---|---|---|
_execl |
<process.h> |
<errno.h> |
_wexecl |
<process.h> または <wchar.h> |
<errno.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
「_exec、_wexec 系関数」の例を参照してください。