共用方式為


_execvpe, _wexecvpe

載入並執行新的子處理序。

重要

這個 API 不能用於在 Windows 執行階段中執行的應用程式。 如需詳細資訊,請參閱 CRT functions not supported in Universal Windows Platform apps (通用 Windows 平台應用程式中不支援的 CRT 函式)。

語法

intptr_t _execvpe(
   const char *cmdname,
   const char *const *argv,
   const char *const *envp
);
intptr_t _wexecvpe(
   const wchar_t *cmdname,
   const wchar_t *const *argv,
   const wchar_t *const *envp
);

參數

cmdname
待執行檔案的路徑。

argv
參數指標的陣列。

envp
環境設定的指標陣列。

傳回值

如果成功,這些函式就不會返回呼叫進程。 -1 的傳回值表示錯誤,在此情況下會 errno 設定全域變數。

errno 描述
E2BIG 引數和環境設定所需的空間超過 32 KB。
EACCES 指定的檔案具有鎖定或共用違規。
EMFILE 已開啟太多檔案。 (必須開啟指定的檔案,才能判斷它是否為可執行檔。
ENOENT 找不到檔案或路徑。
ENOEXEC 指定的檔案不是可執行檔,或具有無效的可執行檔格式。
ENOMEM 記憶體不足,無法執行新的進程;可用的記憶體已損毀;或無效的區塊存在,表示呼叫進程未正確配置。

如需這些傳回碼和其他傳回碼的詳細資訊,請參閱errno_sys_errlist_doserrno_sys_nerr

備註

這些函式中的每一個都會載入和執行新處理序,並傳遞命令列引數的指標陣列和環境設定的指標陣列。 這些函式使用 PATH 環境變數來尋找要執行的檔案。

_execvpe 函式會驗證它們的參數。 當下列狀況時,這些函式會叫用無效的參數處理程式,如參數驗證中所述

  • cmdname 是 Null 指標,
  • argv 是空陣列的 Null 指標或指標,
  • 數位包含空字串做為第一個自變數。

如果處理程式允許繼續執行,這些函式會設定 errnoEINVAL,並傳回 -1。 未啟動任何處理序。

根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態

需求

函式 必要的標頭 選擇性標頭
_execvpe <process.h> <errno.h>
_wexecvpe <process.h> 或 <wchar.h> <errno.h>

如需相容性詳細資訊,請參閱相容性

範例

請參閱中的範例, _exec_wexec 函式

另請參閱

進程和環境控制
_exec_wexec 函式
abort
atexit
exit、 、 _Exit_exit
_onexit, _onexit_m
_spawn_wspawn 函式
system, _wsystem