プロセス制御と環境制御

更新 : 2007 年 11 月

プロセス制御ルーチンは、プログラムのプロセスの起動、停止、および管理に使用します。環境制御ルーチンは、オペレーティング システムの環境に関する情報の取得と変更に使用します。

プロセス制御関数と環境制御関数

ルーチン

用途

同等の .NET Framework 関数

abort

バッファのフラッシュ、または atexit や _onexit によって登録された関数の呼び出しを実行することなく、プロセスを中止します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

assert

論理エラーをテストします。

System::Diagnostics::Debug::Assert

_ASSERT マクロ、_ASSERTE マクロ

デバッグ バージョンのランタイム ライブラリ専用であること以外は、assert と同じです。

System::Diagnostics::Debug::Assert

atexit

プログラム終了時に実行するルーチンをスケジュールします。

System::Diagnostics::Process::Exited

_beginthread、_beginthreadex

Windows オペレーティング システムのプロセスで、スレッドを新規に作成します。

System::Threading::Thread::Start

_cexit

exit 終了プロシージャ (バッファのフラッシュなど) の実行後、プロセスを終了せずに、呼び出し元のプログラムに制御を返します。

System::Diagnostics::Process::CloseMainWindow

_c_exit

_exit 終了プロシージャの実行後、プロセスを終了せずに、呼び出し側のプログラムに制御を返します。

System::Diagnostics::Process::CloseMainWindow

_cwait

ほかのプロセスが終了するまで待機します。

System::Diagnostics::Process::WaitForExit

_endthread、_endthreadex

Windows オペレーティング システムのスレッドを終了します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_execl、_wexecl

引数リストを使用して、新しいプロセスを実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_execle、_wexecle

引数リストと指定された環境を使用して、新しいプロセスを実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_execlp、_wexeclp

PATH 変数と引数リストを使用して、新しいプロセスを実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_execlpe、_wexeclpe

PATH 変数、指定された環境、および引数リストを使用して、新しいプロセスを実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_execv、_wexecv

引数の配列を使用して、新しいプロセスを実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_execve、_wexecve

引数の配列と指定された環境を使用して、新しいプロセスを実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_execvp、_wexecvp

PATH 変数および引数の配列を使用して、新しいプロセスを実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_execvpe、_wexecvpe

PATH 変数、指定された環境、および引数の配列を使用して、新しいプロセスを実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

exit

atexit および _onexit によって登録された関数を呼び出し、すべてのバッファのフラッシュ後、開いているファイルをすべて閉じて、プロセスを終了します。

System::Diagnostics::Process::Kill

_exit

atexit や _onexit の呼び出し、またはバッファのフラッシュを行わずに、プロセスをすぐに終了します。

System::Diagnostics::Process::Kill

getenv、_wgetenvgetenv_s、_wgetenv_s

環境変数の値を取得します。

System::Environment::GetEnvironmentVariable

_getpid

プロセス ID 番号を取得します。

System::Diagnostics::Process::Id

longjmp

保存したスタック環境を復元します。ローカルでないgoto の実行に使用します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_onexit

プログラム終了時に実行するルーチンをスケジュールします。Microsoft C/C++ Version 7.0 以前のバージョンとの互換性のために使用します。

System::Diagnostics::Process::Exited

_pclose

新しいコマンド プロセッサの終了まで待機してから、関連付けられているパイプのストリームを閉じます。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

perror、_wperror

エラー メッセージを出力します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_pipe

読み込みおよび書き込み用にパイプを作成します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_popen、_wpopen

パイプを作成してコマンドを実行します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_putenv、_wputenv_putenv_s、_wputenv_s

環境変数の値を追加または変更します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

raise

呼び出し側のプロセスにシグナルを送信します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

setjmp

スタック環境を保存します。ローカルではない goto の実行に使用します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

signal

割り込みシグナルを処理します。

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

_spawnl、_wspawnl

指定された引数リストを使用して、新しいプロセスを作成し、実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_spawnle、_wspawnle

指定された引数リストと環境を使用して、新しいプロセスを作成し、実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_spawnlp、_wspawnlp

PATH 変数および指定された引数リストを使用して、新しいプロセスを作成し、実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_spawnlpe、_wspawnlpe

PATH 変数、指定された環境、および引数リストを使用して、新しいプロセスを作成し、実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_spawnv、_wspawnv

指定された引数の配列を使用して、新しいプロセスを作成し、実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_spawnve、_wspawnve

指定された環境と引数の配列を使用して、新しいプロセスを作成し、実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_spawnvp、_wspawnvp

PATH 変数および指定された引数の配列を使用して、新しいプロセスを作成し、実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

_spawnvpe、_wspawnvpe

PATH 変数、指定された環境、および引数の配列を使用して、新しいプロセスを作成し、実行します。

System::Diagnostics::Process ClassSystem::Diagnostics::ProcessStartInfo Class

system、_wsystem

オペレーティング システム コマンドを実行します。

System::Diagnostics::ProcessStartInfo ClassSystem::Diagnostics::Process Class

Windows オペレーティング システムでは、生成された子プロセスは親プロセスと同じです。すべてのプロセスは、プロセス ID がわかっている別のプロセスの終了を待機するために、_cwait を使用できます。

_exec 系関数と _spawn 系関数は、_spawn 関数が新しいプロセスから呼び出し元のプロセスに制御を戻すことができる点で異なります。_spawn 関数では、_P_OVERLAY が指定されない限り、呼び出し元のプロセスと新しいプロセスの両方がメモリに存在します。_exec 関数では、新しいプロセスは呼び出し元のプロセスをオーバーレイするため、新しいプロセスの実行開始時にエラーが発生しない限り、呼び出し元のプロセスに制御を戻すことはできません。

_exec 系関数および _spawn 系関数におけるそれぞれの関数の違いは、次の表に示すように、新しいプロセスとして実行するファイルを検索する方法、新しいプロセスに渡される引数の形式、および環境の設定方法にあります。引数の数が一定か、コンパイル時に既知である場合には、引数リストを渡す関数を使用します。引数を格納する配列へのポインタを渡す関数は、引数の個数が実行時に決定される場合に使用します。次の表の内容は、_spawn 系関数および _exec 系関数のワイド文字バージョンにも当てはまります。

_spawn 系関数と _exec 系関数

関数

ファイルの検索に PATH 変数を使用するかどうか

引数を渡す形式

環境の設定

_execl, _spawnl

×

リスト

呼び出し元のプロセスから継承する。

_execle, _spawnle

×

リスト

子プロセス用の環境テーブルへのポインタが最後の引数として渡される。

_execlp, _spawnlp

リスト

呼び出し元のプロセスから継承する。

_execlpe, _spawnlpe

リスト

子プロセス用の環境テーブルへのポインタが最後の引数として渡される。

_execv, _spawnv

×

配列

呼び出し元のプロセスから継承する。

_execve, _spawnve

×

配列

子プロセス用の環境テーブルへのポインタが最後の引数として渡される。

_execvp, _spawnvp

配列

呼び出し元のプロセスから継承する。

_execvpe, _spawnvpe

配列

子プロセス用の環境テーブルへのポインタが最後の引数として渡される。

参照

参照

カテゴリ別ランタイム ルーチン