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.

.NET Framework の相当するアイテム

参照

参照

プロセス制御と環境制御

_exec、_wexec 系関数

exit、_exit

_flushall

_spawn 系関数と _wspawn 系関数