_spawnvpe _wspawnvpe
建立和管理處理序。
重要
這個 API 不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW。
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 指標,則為,如果為 null 指標的 argv 指定的 argv[0] 為空字串,無效的參數叫用處理常式,如 參數驗證 中所述。 如果執行允許繼續,對 EINVAL的這些函式設定的 errno 並傳回 -1。 處理序沒有產生。
需求
程序 |
必要的標頭檔 |
---|---|
_spawnvpe |
<stdio.h> 或 <process.h> |
_wspawnvpe |
<stdio.h> 或 <wchar.h> |
如需其他相容性資訊,請參閱入門介紹中的 相容性 (Compatibility) 。
範例
請參閱 _spawn 函式, _wspawn中的範例。
.NET Framework 對等用法
System::Diagnostics::Process 類別 (System::Diagnostics::Process Class)
System::Diagnostics::ProcessStartInfo 類別 (System::Diagnostics::ProcessStartInfo Class)