次の方法で共有


_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 系関数」の例を参照してください。

.NET Framework の相当するアイテム

参照

参照

プロセス制御と環境制御

_exec、_wexec 系関数

abort

atexit

exit、_exit

_onexit、_onexit_m

_spawn 系関数と _wspawn 系関数

system、_wsystem