system, _wsystem

執行命令。

重要

這個 API 不能用於在 Windows 執行階段中執行的應用程式。 如需詳細資訊,請參閱 CRT functions not supported in Universal Windows Platform apps (通用 Windows 平台應用程式中不支援的 CRT 函式)。

語法

int system(
   const char *command
);
int _wsystem(
   const wchar_t *command
);

參數

command
要執行的命令。

傳回值

如果 commandNULL,且已找到命令解譯器,則傳回非零的值。 如果找不到命令直譯器,則會傳回 0 並將 設定 errnoENOENT 。 如果 command 不是 NULLsystem 則傳回命令直譯器所傳回的值。 只有當命令解譯器傳回為 0 的值,它才會傳回為 0 的值。 -1 的傳回值表示錯誤,並 errno 設定為下列其中一個值:

Description
E2BIG 引數清單(與系統相依)太大。
ENOENT 找不到命令直譯器。
ENOEXEC 無法執行命令直譯器檔案,因為格式無效。
ENOMEM 記憶體不足,無法執行命令;或可用的記憶體已損毀;或不正確區塊存在,這表示呼叫進程已配置不正確。

如需傳回碼的詳細資訊,請參閱 errno_doserrno_sys_errlist_sys_nerr

備註

system 函式會將 command 傳遞到命令解譯器,該解譯器將此字串做為作業系統命令執行。 system 使用 COMSPECPATH 環境變數,以找出命令解譯器檔案 CMD.exe。 如果 commandNULL,則此函式只會檢查命令解譯器是否存在。

呼叫 之前 systemfflush 您必須使用 或 _flushall 明確清除或關閉任何資料流程。

_wsystem 是寬字元版本的 systemcommand_wsystem 引數是寬字元字串。 除此之外,這些函式的行為相同。

根據預設,此函式的全域狀態會限定于應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。

泛型文字常式對應

TCHAR.H 常規 _UNICODE_MBCS 未定義 _MBCS 定義 _UNICODE 定義
_tsystem system system _wsystem

需求

常式 必要的標頭
system <process.h><stdlib.h>
_wsystem <process.h><stdlib.h><wchar.h>

如需相容性詳細資訊,請參閱相容性

範例

這個範例會使用 system 來「輸入」文字檔案。

// crt_system.c

#include <process.h>

int main( void )
{
   system( "type crt_system.txt" );
}

輸入:crt_system.txt

Line one.
Line two.

輸出

Line one.
Line two.

另請參閱

進程和環境控制
_exec_wexec 函式
exit, _Exit, _exit
_flushall
_spawn_wspawn 函式