_execve
, _wexecve
載入並執行新的子處理序。
重要
這個 API 不能用於在 Windows 執行階段中執行的應用程式。 如需詳細資訊,請參閱 CRT functions not supported in Universal Windows Platform apps (通用 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
、 _sys_errlist
_doserrno
和 _sys_nerr
。
備註
所有這些函式都會載入並執行新處理序,並將指標陣列傳遞至命令列引數,將指標陣列傳處至環境設定。
_execve
和 _wexecve
會驗證其參數。 當下列狀況時,這些函式會叫用無效的參數處理程式,如參數驗證中所述:
cmdname
是 Null 指標,argv
是空陣列的 Null 指標或指標,- 數位包含空字串做為第一個自變數。
如果處理程式允許繼續執行,這些函式會設定 errno
為 EINVAL
,並傳回 -1。 未啟動任何處理序。
根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。
需求
函式 | 必要的標頭 | 選擇性標頭 |
---|---|---|
_execve |
<process.h> | <errno.h> |
_wexecve |
<process.h> 或 <wchar.h> | <errno.h> |
如需相容性詳細資訊,請參閱相容性。
範例
請參閱中的範例, _exec
_wexec
函式。
另請參閱
進程和環境控制
_exec
、_wexec
函式
abort
atexit
exit
、 、 _Exit
_exit
_onexit
, _onexit_m
_spawn
、_wspawn
函式
system
, _wsystem
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應