_spawnvpe、_wspawnvpe

建立和執行新處理序。

重要

這個應用程式開發介面不能用於 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_NOWAITO 或_P_NOWAIT ) 為流程控制代碼。 如果處理序正常終止,結束狀態為 0。 如果繁衍的處理序會用非零的引數明確呼叫 exit 常式,您就可以將結束狀態設為非零值。 如果新處理序未明確設定確定的結束狀態,所謂確定的結束狀態表示因中止或中斷而不正常結束。 傳回值為 –1 表示錯誤 (新處理序未啟動)。 在這種情況下,errno 會設為下列其中一個值:

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

  • EINVAL
    mode 引數無效

  • ENOENT
    找不到檔案或路徑

  • ENOEXEC
    指定的檔案無法執行或可執行檔格式無效

  • ENOMEM
    可用記憶體不足,無法執行新處理序

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

備註

這些函式中建立並執行新處理序,透過指標陣列命令列引數和指標陣列環境設定。 這些函式使用 PATH 環境變數來尋找檔案以執行。

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

需求

常式

必要的標頭

_spawnvpe

<stdio.h> 或 <process.h>

_wspawnvpe

<stdio.h> 或 <wchar.h>

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

範例

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

.NET Framework 對等用法

請參閱

參考

abort

atexit

_exec、_wexec 函式

exit、_exit

_flushall

_getmbcp

_onexit、_onexit_m

_setmbcp

system、_wsystem