載入並執行新的子處理序。
重要
這個 API 不能用於在 Windows 執行階段中執行的應用程式。 如需詳細資訊,請參閱 CRT functions not supported in Universal Windows Platform apps (通用 Windows 平台應用程式中不支援的 CRT 函式)。
語法
intptr_t _execl(
const char *cmdname,
const char *arg0,
... const char *argn,
NULL
);
intptr_t _wexecl(
const wchar_t *cmdname,
const wchar_t *arg0,
... const wchar_t *argn,
NULL
);
參數
cmdname
待執行檔案的路徑。
arg0, ... argN
參數指標的清單。
傳回值
如果成功,這些函式就不會返回呼叫進程。 -1 的傳回值表示錯誤,在此情況下會 errno 設定全域變數。
errno 值 |
描述 |
|---|---|
E2BIG |
引數和環境設定所需的空間超過 32 KB。 |
EACCES |
指定的檔案具有鎖定或共用違規。 |
EINVAL |
參數無效 (一或多個參數是 null 指標或空字串)。 |
EMFILE |
開啟太多檔案(必須開啟指定的檔案,才能判斷其是否為可執行檔)。 |
ENOENT |
找不到檔案或路徑。 |
ENOEXEC |
指定的檔案不是可執行檔,或具有無效的可執行檔格式。 |
ENOMEM |
記憶體不足,無法執行新的進程;可用的記憶體已損毀;或無效的區塊存在,表示呼叫進程未正確配置。 |
備註
所有這些函式都會載入和執行新的處理序,並將每個命令列引數作為個別參數傳遞。 第一個引數是命令或可執行檔名,而第二個引數應該與第一個引數相同。 它會成為所執行之處理序中的 argv[0]。 第三個引數是所要執行之處理序的第一個引數 argv[1]。
_execl 函式會驗證它們的參數。 cmdname如果 或 arg0 為 Null 指標或空字串,這些函式會叫用無效的參數處理程式,如參數驗證允許繼續執行中所述,這些函式會設定errno為 EINVAL 並傳回 -1。 沒有執行任何新處理序。
需求
| 函式 | 必要的標頭 | 選擇性標頭 |
|---|---|---|
_execl |
<process.h> | <errno.h> |
_wexecl |
<process.h> 或 <wchar.h> | <errno.h> |
如需相容性詳細資訊,請參閱相容性。
範例
請參閱中的範例, _exec_wexec 函式。
另請參閱
進程和環境控制
_exec、_wexec 函式
abort
atexit
exit、 、 _Exit_exit
_onexit, _onexit_m
_spawn、_wspawn 函式
system, _wsystem