Share via


_execve、_wexecve

更新 : 2007 年 11 月

新しい子プロセスを読み込んで実行します。

intptr_t _execve( 
   const char *cmdname,
   const char *const *argv,
   const char *const *envp 
);
intptr_t _wexecve( 
   const wchar_t *cmdname,
   const wchar_t *const *argv,
   const wchar_t *const *envp 
);

パラメータ

  • cmdname
    実行するファイルのパス。

  • argv
    パラメータへのポインタの配列。

  • envp
    環境設定へのポインタの配列。

戻り値

成功すると、この関数は呼び出し側のプロセスには戻りません。戻り値が -1 の場合はエラーであり、その場合にはグローバル変数 errno が設定されます。

errno の値

説明

E2BIG

引数リストと環境設定に必要な領域が 32 KB を超えています。

EACCES

指定されたファイルにロック違反、または共有違反が発生しています。

EINVAL

無効なパラメータ。

EMFILE

開いているファイルが多すぎます (指定したファイルを開けないと、そのファイルが実行可能かどうかを判定できません)。

ENOENT

ファイル名またはパス名が見つかりません。

ENOEXEC

指定したファイルが実行可能ファイルでない、または実行可能ファイルの書式が無効です。

ENOMEM

メモリ不足のため、新しいプロセスを実行できません。または、使用できるメモリが壊れています。または、無効なブロックがあるため、呼び出し側プロセスが正しく割り当てられていません。

リターン コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。

解説

これらの各関数は、新しいプロセスを読み込んで実行します。コマンド ライン引数へのポインタの配列と、環境設定へのポインタの配列が渡されます。

Visual C++ 2005 では、_execve と _wexecve は、パラメータを検証します。cmdname が null ポインタの場合、または argv が null ポインタ (空の配列へのポインタ) の場合、または配列の最初の引数が空の文字列の場合、「パラメータの検証」に説明されているように、これらの関数は無効なパラメータ ハンドラを呼び出します。実行の継続が許可された場合、errno を EINVAL に設定し、-1 を返します。新しいプロセスは生成されません。

必要条件

関数

必須ヘッダー

オプション ヘッダー

_execve

<process.h>

<errno.h>

_wexecve

<process.h> または <wchar.h>

<errno.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

_exec、_wexec 系関数」の例を参照してください。

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

参照

参照

プロセス制御と環境制御

_exec、_wexec 系関数

abort

atexit

exit、_exit

_onexit、_onexit_m

_spawn 系関数と _wspawn 系関数

system、_wsystem