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
要執行的命令。
傳回值
如果 command
是 NULL
,且已找到命令解譯器,則傳回非零的值。 如果找不到命令解釋器,則會傳回 0 並將 設定 errno
為 ENOENT
。 如果 command
不是 NULL
, system
則傳回命令解釋器所傳回的值。 只有當命令解譯器傳回為 0 的值,它才會傳回為 0 的值。 -1 的傳回值表示錯誤,並 errno
設定為下列其中一個值:
值 | Description |
---|---|
E2BIG |
自變數清單(與系統相依)太大。 |
ENOENT |
找不到命令解釋器。 |
ENOEXEC |
無法執行命令解釋器檔案,因為格式無效。 |
ENOMEM |
記憶體不足,無法執行命令;或可用的記憶體已損毀;或無效的區塊存在,這表示呼叫進程已配置不正確。 |
如需傳回碼的詳細資訊,請參閱errno
、 _doserrno
_sys_errlist
和 _sys_nerr
。
備註
system
函式會將 command
傳遞到命令解譯器,該解譯器將此字串做為作業系統命令執行。 system
使用 COMSPEC
和 PATH
環境變數,以找出命令解譯器檔案 CMD.exe。 如果 command
是 NULL
,則此函式只會檢查命令解譯器是否存在。
呼叫 之前system
,fflush
您必須使用 或 _flushall
明確清除或關閉任何數據流。
_wsystem
是寬字元版本的 system
; command
的 _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
函式