共用方式為


_spawnlp _wspawnlp

建立和執行處理序。

重要事項重要事項

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

intptr_t _spawnlp(
   int mode,
   const char *cmdname,
   const char *arg0,
   const char *arg1,
   ... const char *argn,
   NULL 
);
intptr_t _wspawnlp(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *arg0,
   const wchar_t *arg1,
   ... const wchar_t *argn,
   NULL 
);

參數

  • mode
    呼叫處理序的執行方式。

  • cmdname
    要執行之檔案的路徑。

  • arg0, arg1, ... argn
    引數的指標清單。arg0 引數通常是 cmdname的指標。引數 arg1 透過 argn 是指向形成新的引數清單的字串。在 argn之後,必須有標記結尾 NULL 指標的引數清單。

傳回值

由同步處理 _spawnlp或 _wspawnlp(為 mode指定之_P_WAIT的傳回值) 是處理序的執行狀態。從非同步 _spawnlp 或 _wspawnlp 的傳回值為 ( mode或 _P_NOWAITO 指定的_P_NOWAIT ) 是管理控制代碼。如果處理序通常,結束退出狀態是 0。如果產生的流程特別呼叫具有非零引數的 exit 常式,您可以設定退出狀態設定為非零的值。如果處理序沒有明確設定一個正面退出狀態,正面退出狀態表示例外狀況跳出以中止或中斷。傳回值為 1 表示錯誤 (處理序未啟動)。在這種情況下, errno 會設為下列其中一個值。

  • E2BIG
    引數超過 1024 個位元組。

  • EINVAL
    mode 引數無效。

  • ENOENT
    檔案或路徑找不到。

  • ENOEXEC
    將指定的檔案不可執行檔或具有無效的可執行檔的檔案格式。

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

如需更多關於這些和其他回傳碼的資訊,請參閱 _doserrno 、 errno 、 _sys_errlist 、和 _sys_nerr (_doserrno, errno, _sys_errlist, and _sys_nerr)

備註

這些函式中建立並執行處理序,只要一命令列引數當做個別參數和 PATH 使用環境變數來尋找檔案執行。

這些函式會驗證它們的參數。如果 cmdname 或 arg0 是空字串或 null 指標,這些函式會產生不正確的參數例外狀況,如 參數驗證中所述。如果執行允許繼續,對 EINVAL的這些函式設定的 errno 並傳回 -1。處理序沒有產生。

需求

程序

必要的標頭檔

_spawnlp

<process.h>

_wspawnlp

<stdio.h> 或 <wchar.h>

如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility)

範例

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

.NET Framework 對等用法

請參閱

參考

處理程序和環境控制

_spawn,_wspawn 函式

abort

atexit

_exec,_wexec 函式

exit、_exit

_flushall

_getmbcp

_onexit _onexit_m

_setmbcp

system _wsystem