_execl、_wexecl
新しい子プロセスを読み込んで実行します。
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] になります。
_execl関数は、パラメーターを検証します。 cmdname または arg0 が null ポインターまたは空の文字列の場合、「パラメーターの検証」に説明されているように、これらの関数は無効なパラメーター ハンドラーを呼び出します。実行の継続が許可された場合は、errno を EINVAL に設定し、-1 を返します。 新しいプロセスは実行されません。
必要条件
機能 |
必須ヘッダー |
オプション ヘッダー |
---|---|---|
_execl |
<process.h> |
<errno.h> |
_wexecl |
<process.h> または <wchar.h> |
<errno.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
「_exec、_wexec 系関数」の例を参照してください。