處理程序和環境控制
您可以使用 [處理程序控制常式來啟動、 停止及管理程式中的程序。使用環境控制常式來取得及變更作業系統環境的相關資訊。
處理程序和環境控制函式
常式 |
使用 |
.NET Framework 的對等用法 |
---|---|---|
中止處理程序,而不會清除緩衝區,或呼叫函式所登錄的atexit ,_onexit |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
邏輯錯誤的測試 |
||
類似於assert,但只適用於執行階段程式庫的偵錯版本 |
||
在程式終止執行排程常式 |
||
在 Windows 作業系統處理程序中建立新的執行緒 |
||
執行exit終止程序 (例如,在清除緩衝區),然後傳回控制給呼叫程式而不需要終止處理程序 |
||
執行_exit終止程序,然後傳回控制給呼叫程式而不需要終止處理程序 |
||
請等候另一個處理序終止 |
||
結束 Windows 作業系統執行緒 |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
執行新的處理程序與引數清單 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
執行新的處理序使用引數清單和某一環境 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
執行新的處理程序使用PATH變數和引數清單 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
執行新的處理程序使用PATH變數,指定的環境,以及引數清單 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
執行新的處理序的引數陣列 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
執行新的處理序具有引數陣列和指定的環境 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
執行新的處理程序使用PATH變數和引數的陣列 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
執行新的處理程序使用PATH變數,指定的環境,以及引數陣列 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
呼叫函式所登錄的atexit和_onexit,清除所有的緩衝區,關閉所有開啟檔案,並終止處理程序 |
||
終止處理序立即而電話不atexit或_onexit或清除緩衝區 |
||
取得環境變數的值 |
||
取得處理序身分證字號 |
||
還原儲存堆疊環境。 用它來執行 nonlocalgoto |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
程式終止 ; 在執行排程常式 用來與 Microsoft C/C++ 7.0 版或更早版本的相容性 |
||
等候新的命令處理器,並關閉資料流相關聯的管道 |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
列印錯誤訊息 |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
建立用於讀取和寫入管道 |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
建立管道,以及執行命令 |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
新增或變更環境變數的值 |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
將訊號傳送至呼叫程序 |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
儲存堆疊環境。 用來執行非本機goto |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
處理插斷訊號 |
不適用。若要呼叫標準的 c 函式,使用PInvoke。如需詳細資訊,請參閱平台叫用範例。 |
|
建立和執行新的處理序使用指定的引數清單 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
建立和執行新的處理序使用指定的引數清單與環境 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
建立和執行新的處理程序使用PATH變數和指定的引數清單 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
建立和執行新的處理程序使用PATH變數、 指定的環境,以及引數清單 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
建立和執行新的處理程序,以指定的引數陣列 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
建立和執行新的處理程序,以指定的環境和引數陣列 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
建立和執行新的處理程序使用PATH變數,並指定的引數陣列 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
建立和執行新的處理程序使用PATH變數、 指定的環境,以及引數陣列 |
System::Diagnostics::Process 類別, System::Diagnostics::ProcessStartInfo 類別 |
|
執行作業系統命令 |
System::Diagnostics::ProcessStartInfo 類別, System::Diagnostics::Process 類別 |
在 Windows 作業系統繁衍 (spawn) 的程序相當於繁衍處理序。任何處理程序可以使用_cwait等候處理序 ID 已知的任何其他處理程序。
之間的差異_exec和_spawn家族是_spawn函式會傳回控制項從新的處理程序呼叫程序。在_spawn函式,這兩個呼叫程序,並在記憶體中有新的處理序除非_P_OVERLAY所指定。在_exec函式、 新的處理程序覆疊電話處理,因此控制項無法傳回呼叫處理程序,除非嘗試開始執行新的處理序中發生錯誤。
中的函式之間的差異_exec ,以及於在_spawn家族,涉及找出要執行新程序當中,順序引數傳遞至新的處理序,並設定環境的方法如下表所示的表單檔案的方法。使用引數數目是常數,或在編譯時期已知時,會傳遞的引數清單的函式。使用的函數,將指標傳遞至陣列,其中包含引數,引數數目時若要在執行階段決定。下表中的資訊也適用於的寬字元對應_spawn和_exec函式。
_spawn 和 _exec 函式家族
功能 |
找不到檔案中使用 PATH 變數 |
引數傳遞轉換 |
環境設定 |
---|---|---|---|
_execl, _spawnl |
否 |
List |
從呼叫程序繼承而來 |
_execle, _spawnle |
否 |
List |
新的處理序的環境資料表指標傳遞做為最後一個引數 |
_execlp, _spawnlp |
是 |
List |
從呼叫程序繼承而來 |
_execlpe, _spawnlpe |
是 |
List |
新的處理序的環境資料表指標傳遞做為最後一個引數 |
_execv, _spawnv |
否 |
陣列 |
從呼叫程序繼承而來 |
_execve, _spawnve |
否 |
陣列 |
新的處理序的環境資料表指標傳遞做為最後一個引數 |
_execvp, _spawnvp |
是 |
陣列 |
從呼叫程序繼承而來 |
_execvpe, _spawnvpe |
是 |
陣列 |
新的處理序的環境資料表指標傳遞做為最後一個引數 |