建議使用 Visual Studio 2017

_spawnvpe、_wspawnvpe

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

建立和執行新處理序。

System_CAPS_ICON_important.jpg 重要

這個 API 不能用於在 Windows 執行階段中執行的應用程式。 如需詳細資訊,請參閱 /ZW 不支援 CRT 函式

intptr_t _spawnvpe(  
   int mode,  
   const char *cmdname,  
   const char *const *argv,  
   const char *const *envp   
);  
intptr_t _wspawnvpe(  
   int mode,  
   const wchar_t *cmdname,  
   const wchar_t *const *argv,  
   const wchar_t *const *envp   
);  

參數

mode
呼叫程序的執行模式

cmdname
若要執行的檔案路徑

argv
引數指標的陣列。 引數 argv[0] 通常是真實模式中的路徑或受保護模式中程序名稱的指標,而 argv[1] 至 argv[n] 是形成新引數清單之字元字串的指標。 引數 argv[n +1] 必須是 NULL 指標,以標記引數清單的結尾。

envp
陣列指標的環境設定

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

E2BIG
引數清單超過 1024 個位元組

EINVAL
mode引數無效

ENOENT
檔案或路徑找不到

ENOEXEC
指定的檔案不是可執行檔或可執行檔格式無效

ENOMEM
沒有足夠的記憶體可用於執行新處理序

請參閱_doserrno,errno,_sys_errlist 和 _sys_nerr如需有關這些功能和其他的詳細資訊,傳回碼。

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

這些函式會驗證它們的參數。 如果cmdnameargv是 null 指標,或如果argv指向 null 指標,或argv[0]為空字串,無效參數處理常式叫用時,所述參數驗證。 如果允許繼續執行,這些函式會將 errno 設為 EINVAL,並傳回 -1。 未繁衍任何新處理序。

常式必要的標頭
_spawnvpe<stdio.h> 或 <process.h>
_wspawnvpe<stdio.h> 或 <wchar.h>

如需其他相容性資訊,請參閱 相容性

請參閱 _spawn、_wspawn 函式中的範例。

中止
atexit
_exec、 _wexec 函式
exit、 _Exit、 _exit
_flushall
_getmbcp
_onexit、 _onexit_m
_setmbcp
system、 _wsystem

顯示: