_spawnlpe、_wspawnlpe
建立和執行新處理序。
重要
這個應用程式開發介面不能用於 Windows 執行階段 中執行的應用程式。如需詳細資訊,請參閱 /ZW 不支援 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的指標。 引數 arg1 至 argn 是指向形成新的引數清單的字元字串。 argn之後必須有一個 NULL 指標,以標記引數清單的結尾。envp
指向環境設定的指標的陣列。
傳回值
同步處理 _spawnlpe 或 _wspawnlpe (若 mode 則為 _P_WAIT) 的傳回值是新處理序的結束狀態。 非同步 _spawnlpe 或 _wspawnlpe 的傳回值 (若 mode 則為 _P_NOWAITO 或_P_NOWAIT ) 為流程控制代碼。 如果處理序正常終止,結束狀態為 0。 如果繁衍的處理序明確使用非零引數呼叫 exit 常式,您就可以將結束狀態設為非零值。 如果新處理序未明確設定確定的結束狀態,所謂確定的結束狀態表示因中止或中斷而不正常結束。 傳回值為 –1 表示錯誤 (新處理序未啟動)。 在這種情況下,errno 會設為下列其中一個值。
E2BIG
引數清單超過 1024 個位元組。EINVAL
mode 引數無效。ENOENT
找不到檔案或路徑。ENOEXEC
指定的檔案無法執行或可執行檔格式無效。ENOMEM
可用記憶體不足,無法執行新處理序。
如需有關這些傳回碼和其他傳回碼的詳細資訊,請參閱 errno、_doserrno、_sys_errlist 和 _sys_nerr。
備註
這些函式建立並執行新的處理程序,將每個命令列引數以不同的參數傳遞並同時傳入指向環境設定的指標。 這些函式使用 PATH 環境變數來尋找檔案以執行。
這些函式會驗證它們的參數。 如果 cmdname 或 arg0 是空字串或 null 指標,會觸發無效參數處理常式,如 參數驗證 中所述。 如果允許繼續執行,這些函式會將 errno 設為 EINVAL,並傳回 -1。 未繁衍任何新處理序。
需求
常式 |
必要的標頭 |
---|---|
_spawnlpe |
<process.h> |
_wspawnlpe |
<stdio.h> 或 <wchar.h> |
如需詳細的相容性資訊,請參閱相容性。
範例
請參閱_spawn、_wspawn 函式中的範例。
.NET Framework 對等用法
System::Diagnostics::Process 類別 (System::Diagnostics::Process Class)
System::Diagnostics::ProcessStartInfo 類別 (System::Diagnostics::ProcessStartInfo Class)