次の方法で共有


_execve, _wexecve

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

重要

この API は、Windows ランタイムで実行するアプリケーションでは使用できません。 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。

構文

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 新しいプロセスを実行するのに十分なメモリがありません。使用可能なメモリが破損しています。または無効なブロックが存在し、呼び出し元のプロセスが正しく割り当てられなかったことを示します。

これらのリターン コードとその他のリターン コードについては、「errno_doserrno_sys_errlist_sys_nerr」を参照してください。

解説

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

_execve および _wexecve は、パラメーターを検証します。 これらの関数は、 Parameter 検証で説明されているように、次の場合に無効なパラメーター ハンドラーを呼び出します。

  • cmdname は null ポインターです。
  • argv は null ポインターまたは空の配列へのポインターです。
  • 配列には、最初の引数として空の文字列が含まれています。

ハンドラーによって実行を続行できる場合、これらの関数は errnoEINVAL に設定し、-1 を返します。 プロセスは起動されません。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。

要件

機能 必須ヘッダー オプション ヘッダー
_execve <process.h> <errno.h>
_wexecve <process.h> または <wchar.h> <errno.h>

互換性の詳細については、「 Compatibility」を参照してください。

_exec_wexec関数の例を参照してください

関連項目

プロセスと環境の制御
_exec_wexec 関数
abort
atexit
exit_Exit_exit
_onexit, _onexit_m
_spawn_wspawn 関数
system, _wsystem