共用方式為


流程控制和環境控制

使用程式控制的常式,開始和停止處理序從程式內。 使用環境控制常式衍生和變更有關作業系統環境的相關資訊。

流程和環境控制函式

常式

用法

.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 類別System::Diagnostics::ProcessStartInfo 類別

_execle、_wexecle

執行與引數清單和特定環境的新處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_execlp、_wexeclp

使用 PATH 變數和引數清單,執行處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_execlpe、_wexeclpe

使用 PATH 變數,執行處理序將環境和引數清單

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_execv、_wexecv

執行與引數陣列的新處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_execve、_wexecve

執行與引數陣列和特定環境的新處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_execvp、_wexecvp

使用 PATH 變數和引數陣列,執行處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_execvpe、_wexecvpe

使用 PATH 變數,執行處理序將環境和引數陣列

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

exit

呼叫函式是由 atexit 和 _onexit,清除所有緩衝區,關閉所有開啟的檔案,並結束處理序

System::Diagnostics::Process::Kill

_exit

結束的處理序,而不呼叫 atexit 或 _onexit 或清除緩衝區

System::Diagnostics::Process::Kill

getenv, _wgetenv, getenv_s、_wgetenv_s

取得環境變數的值

System::Environment::GetEnvironmentVariable

_getpid

取得處理序 ID 編號

System::Diagnostics::Process::Id

longjmp

還原已儲存的堆疊環境;使用它執行非區域的 goto。

不適用。 若要呼叫標準 C 函式,請使用 PInvoke。 如需詳細資訊,請參閱平台叫用範例

_onexit

排程執行常式在程式結束;相容性的用途與 Microsoft C/C++ 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 類別System::Diagnostics::ProcessStartInfo 類別

_spawnle、_wspawnle

建立並執行指定的引數清單和環境的新處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_spawnlp、_wspawnlp

使用 PATH 變數和指定的引數清單,建立和執行處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_spawnlpe、_wspawnlpe

使用 PATH 指定的變數和引數清單,建立和執行處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_spawnv、_wspawnv

建立和執行與指定引數陣列中的處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_spawnve、_wspawnve

建立並執行指定的引數陣列和環境的新處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_spawnvp、_wspawnvp

使用 PATH 變數和指定的引數陣列,建立和執行處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

_spawnvpe、_wspawnvpe

使用 PATH 指定的變數和引數陣列,建立和執行處理序

System::Diagnostics::Process 類別System::Diagnostics::ProcessStartInfo 類別

system、_wsystem

執行作業系統的命令

System::Diagnostics::ProcessStartInfo 類別System::Diagnostics::Process 類別

在 Windows 作業系統中,產生的流程與產生的處理序相同。 任何處理序都可以使用 _cwait 等候處理序 ID 知道的其他處理序。

在 _exec 和 _spawn 家族之間的差異在於 _spawn 函式可傳回從處理序的控制項加入至呼叫程序。 在 _spawn 函式中,除非已指定 _P_OVERLAY ,呼叫處理和處理序是存在於記憶體中。 在 _exec 函式,更新過程覆疊呼叫程序,因此,控制項無法回到呼叫程序,除非錯誤在嘗試產生啟動新的處理序的執行。

區別在 _exec 系列的函式中,以及在那些中 _spawn 家族,涉及尋找當做引數傳遞給處理序的處理序、表單和設定環境方法所執行的檔案方法,如下表所示。 使用引數清單的函式,當引數數目是常數或在編譯時間。 使用將指標傳遞給包含引數的陣列的函式,當引數數目要判斷在執行階段時。 資訊下表中也適用於 _spawn 和 _exec 函式的寬字元對應。

_spawn 函式家族和 _exec

函式

使用路徑變數尋找檔案。

引數傳遞慣例

環境設定

_execl, _spawnl

沒有

List

繼承自呼叫處理序

_execle, _spawnle

沒有

List

對環境資料表的指標做為引數傳遞的最後一個處理序的

_execlp, _spawnlp

List

繼承自呼叫處理序

_execlpe, _spawnlpe

List

對環境資料表的指標做為引數傳遞的最後一個處理序的

_execv, _spawnv

沒有

陣列

繼承自呼叫處理序

_execve, _spawnve

沒有

陣列

對環境資料表的指標做為引數傳遞的最後一個處理序的

_execvp, _spawnvp

陣列

繼承自呼叫處理序

_execvpe, _spawnvpe

陣列

對環境資料表的指標做為引數傳遞的最後一個處理序的

請參閱

參考

依分類區分的執行階段常式