_spawnlpe _wspawnlpe
建立和執行處理序。
重要事項 |
---|
這個應用程式開發介面無法用來在 Windows 執行階段中執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW。 |
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 指標,無效的參數叫用處理常式,如 參數驗證中所述。如果執行允許繼續,對 EINVAL的這些函式設定的 errno 並傳回 -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)