Share via


_spawnlpe, _wspawnlpe

建立和執行新處理序。

重要

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

語法

intptr_t _spawnlpe(
   int mode,
   const char *cmdname,
   const char *arg0,
   const char *arg1,
   ... const char *argn,
   NULL,
   const char *const *envp
);
intptr_t _wspawnlpe(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *arg0,
   const wchar_t *arg1,
   ... const wchar_t *argn,
   NULL,
   const wchar_t *const *envp
);

參數

mode
呼叫處理序的執行模式。

cmdname
待執行檔案的路徑。

arg0, arg1, ... argN
引數指標的清單。 arg0 引數一般是 cmdname 的指標。 arg1argN 的引數是形成新引數清單之字元字串的指標。 argN之後必須有一個 NULL 指標,以標記引數清單的結尾。

envp
環境設定的指標陣列。

傳回值

同步 _spawnlpe_wspawnlpe (為 mode 指定的 _P_WAIT) 的傳回值是新處理序的結束狀態。 非同步 _spawnlpe_wspawnlpe (為_P_NOWAIT 指定的 _P_NOWAITOmode) 的傳回值是處理序控制代碼。 如果處理序正常終止,結束狀態為 0。 如果繁衍的處理序明確使用非零引數呼叫 exit 常式,您就可以將結束狀態設為非零值。 如果新進程未明確設定正結束狀態,則正結束狀態表示中止或中斷所造成的異常結束。 -1 的傳回值表示錯誤(未啟動新進程)。 在這種情況下, errno 會設為下列其中一個值。

Description
E2BIG 引數清單超過 1024 個位元組。
EINVAL mode 引數無效。
ENOENT 找不到檔案或路徑。
ENOEXEC 指定的檔案不是可執行檔,或具有不正確可執行檔案格式。
ENOMEM 可用記憶體不足,無法執行新處理序。

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

備註

所有這些函式都會建立和執行新處理序,並將每個命令列引數做為個別參數傳遞,也會將指標的陣列傳遞至環境設定。 這些函式使用 PATH 環境變數來尋找要執行的檔案。

這些函式會驗證它們的參數。 cmdname如果 或 arg0 為空字串或 Null 指標,則會叫用不正確參數處理常式,如參數驗證 中所述 。 如果允許繼續執行,這些函式會將 errno 設為 EINVAL,並傳回 -1。 未繁衍任何新處理序。

需求

常式 必要的標頭
_spawnlpe <process.h>
_wspawnlpe <stdio.h > 或 < wchar.h>

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

範例

請參閱 中的 範例, _spawn_wspawn 函式

另請參閱

進程和環境控制
_spawn_wspawn 函式
abort
atexit
_exec_wexec 函式
exit, _Exit, _exit
_flushall
_getmbcp
_onexit, _onexit_m
_setmbcp
system, _wsystem