system
, _wsystem
コマンドを実行します。
重要
この API は、Windows ランタイムで実行するアプリケーションでは使用できません。 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。
構文
int system(
const char *command
);
int _wsystem(
const wchar_t *command
);
パラメーター
command
実行するコマンド。
戻り値
command
が NULL
の場合に、コマンド インタープリターが見つかると、0 以外の値を返します。 コマンド インタープリターが見つからない場合は、0 を返し、 errno
を ENOENT
に設定します。 command
がNULL
されていない場合、system
はコマンド インタープリターによって返される値を返します。 コマンド インタープリターから値 0 が返された場合にのみ、値 0 を返します。 戻り値 -1 はエラーを示します。その場合、errno
は次のいずれかの値に設定されます。
値 | 説明 |
---|---|
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> |
互換性の詳細については、「 Compatibility」を参照してください。
例
この例では、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
関数