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