system、_wsystem
更新 : 2007 年 11 月
コマンドを実行します。
int system(
const char *command
);
int _wsystem(
const wchar_t *command
);
パラメータ
- command
実行するコマンド。
戻り値
command が NULL で、コマンド インタープリタが見つかった場合は、0 以外の値を返します。コマンド インタープリタが見つからない場合は 0 を返し、グローバル変数 errno に ENOENT を設定します。command が NULL ではない場合、system はコマンド インタープリタが返す値を返します。コマンド インタープリタが値 0 を返した場合にだけ、system 関数は値 0 を返します。戻り値が – 1 の場合はエラーを示し、グローバル変数 errno に次のいずれかの値が設定されます。
E2BIG
引数リスト (システムに依存) が大きすぎます。ENOENT
コマンド インタープリタが見つかりません。ENOEXEC
コマンド インタープリタ ファイルの書式が無効で、実行できません。ENOMEM
メモリ不足のためコマンドを実行できないか、使用できるメモリが破損しています。または、無効なブロックがあるため、呼び出し側プロセスが正しく割り当てられていません。
戻り値の詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
解説
system 関数は、command をコマンド インタープリタに渡します。インタープリタは、この文字列をオペレーティング システム コマンドとして実行します。system は、コマンド インタープリタ ファイル (Windows 2000 以降では CMD.EXE という名前のファイル) の位置を特定する COMSPEC と PATH の各環境変数を参照します。command が NULL の場合、この関数はコマンド インタープリタの存在を確認するだけです。
system を呼び出す前に、fflush 関数または _flushall 関数を使用してすべてのストリームを明示的にフラッシュするか、または閉じる必要があります。
_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> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
次のプログラムでは、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.