system、_wsystem
執行命令。
重要
這個應用程式開發介面不能用於 Windows 執行階段 中執行的應用程式。如需詳細資訊,請參閱 /ZW 不支援 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 會設為下列其中一個值:
E2BIG
依系統而定) 的引數清單 (太大。ENOENT
找不到命令直編譯器。ENOEXEC
因為格式無效,命令解譯器檔案無法執行。ENOMEM
沒有足夠的記憶體可用執行命令;或可用記憶體損毀;或不是有效的區塊存在,表示將呼叫不正確的工作流程。
如需有關這些錯誤碼和其他錯誤碼的詳細資訊,請參閱 _doserrno、errno、_sys_errlist 和 _sys_nerr。
備註
system 函式會將 command 傳遞至命令的編譯器,執行字串做為作業系統命令。 system 使用 COMSPEC 和 PATH 環境變數尋找命令解譯器檔案 CMD.exe。 如果 command 是 NULL,函式會檢查命令直編譯器是否存在。
您必須明確地清除─使用 fflush 或 _flushall─ 或在您呼叫 system 函式之前關閉資料流。
_wsystem 是 system 的寬字元版本。 _wsystem 的 command 引數是寬字元字串。 這三個函式其餘部分的運作相同。
一般文字常式對應
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.
Output
Line one.
Line two.
.NET Framework 對等用法
System::Diagnostics::ProcessStartInfo 類別 (System::Diagnostics::ProcessStartInfo Class)
System::Diagnostics::Process 類別 (System::Diagnostics::Process Class)