使用處理序控制常式可從程式內啟動、停止及管理處理序。 使用環境控制常式可取得和變更作業系統環境的相關資訊。
進程和環境控制功能
| 常式 | 使用 |
|---|---|
abort |
中止處理序,而不會清除緩衝區或呼叫 atexit 和 _onexit 註冊的函式 |
assert |
測試邏輯錯誤 |
_ASSERT、 _ASSERTE 巨集 |
類似於 assert,但僅適用於偵錯版本的執行階段程式庫 |
atexit |
排程常式在程式終止時執行 |
_beginthread, _beginthreadex |
在 Windows 作業系統處理序上建立新的執行緒 |
_cexit |
執行 exit 終止程序 (例如清除緩衝區),然後將控制權交還給呼叫程式而不終止處理序 |
_c_exit |
執行 _exit 終止程序,然後將控制權交還給呼叫程式而不終止處理序 |
_cwait |
等到其他處理序終止為止 |
_endthread, _endthreadex |
終止 Windows 作業系統執行緒 |
_execl, _wexecl |
使用引數清單執行新處理序 |
_execle, _wexecle |
使用引數清單和指定的環境執行新處理序 |
_execlp, _wexeclp |
使用 PATH 變數和引數清單執行新處理序 |
_execlpe, _wexeclpe |
使用 PATH 變數、指定的環境和引數清單執行新處理序 |
_execv, _wexecv |
使用引數陣列執行新處理序 |
_execve, _wexecve |
使用引數陣列和指定的環境執行新處理序 |
_execvp, _wexecvp |
使用 PATH 變數和引數陣列執行新處理序 |
_execvpe, _wexecvpe |
使用 PATH 變數、指定的環境和引數陣列執行新處理序 |
exit |
呼叫 atexit 和 _onexit 註冊的函式、清除所有緩衝區、關閉所有開啟的檔案,並且終止處理序 |
_exit |
立即終止處理序而不呼叫 atexit 或 _onexit 或清除緩衝區 |
getenv、 、 _wgetenv、 getenv_s_wgetenv_s |
取得環境變數的值 |
_getpid |
取得處理序 ID 編號 |
longjmp |
還原儲存的堆疊環境;使用它來執行非區域的 goto |
_onexit |
排程常式在程式終止時執行;為了與 Microsoft C/C++ 版本 7.0 或更早版本的相容性而使用 |
_pclose |
等候新的命令處理程式,然後關閉相關管道上的資料流 |
perror, _wperror |
列印錯誤訊息 |
_pipe |
建立用於讀取和寫入的管道 |
_popen, _wpopen |
建立管道並執行命令 |
_putenv、 、 _wputenv、 _putenv_s_wputenv_s |
新增或變更環境變數的值 |
raise |
將訊號傳送至呼叫處理序 |
setjmp |
儲存堆疊環境;用來執行非區域的 goto |
signal |
處理插斷訊號 |
_spawnl, _wspawnl |
使用指定的引數清單建立並執行新處理序 |
_spawnle, _wspawnle |
使用指定的引數清單和環境建立並執行新處理序 |
_spawnlp, _wspawnlp |
使用 PATH 變數和指定的引數清單建立並執行新處理序 |
_spawnlpe, _wspawnlpe |
使用 PATH 變數、指定的環境和引數清單建立並執行新處理序 |
_spawnv, _wspawnv |
使用指定的引數陣列建立並執行新處理序 |
_spawnve, _wspawnve |
使用指定的環境和引數陣列建立並執行新處理序 |
_spawnvp, _wspawnvp |
使用 PATH 變數和指定的引數陣列建立並執行新處理序 |
_spawnvpe, _wspawnvpe |
使用 PATH 變數、指定的環境和引數陣列建立並執行新處理序 |
system, _wsystem |
執行作業系統命令 |
在 Windows 作業系統中,被繁衍的處理序相當於繁衍的處理序。 任何處理序都可以使用 _cwait 等候處理序識別碼已知的任何其他處理序。
_exec 和 _spawn 系列之間的差異是 _spawn 函式可以將控制權從新的處理序交還給呼叫處理序。 在 _spawn 函式中,除非指定 _P_OVERLAY,否則記憶體中會同時有呼叫處理序和新處理序。 在函 _exec 式中,新的進程會重迭呼叫進程,因此控件無法返回呼叫進程,除非嘗試開始執行新進程時發生錯誤。
和 _spawn 系列中的_exec函式之間的差異包括尋找要執行為新進程的檔案的方法、將自變數傳遞給新進程的窗體,以及設定環境的方法,如下表所示。 當引數數目是常數或在編譯階段為已知時,使用傳遞引數清單的函式。 當引數數目是在執行階段決定時,使用將指標傳遞給包含引數之陣列的函式。 下表中的資訊也適用於 _spawn 和 _exec 函式的寬字元對應。
_spawn 和 _exec 函式系列
| 函式 | 使用 PATH 變數來尋找檔案 |
引數傳遞慣例 | 環境設定 |
|---|---|---|---|
_execl, _spawnl |
No | 清單 | 繼承自呼叫處理序 |
_execle, _spawnle |
No | 清單 | 新處理序的環境表格指標,以最後一個引數傳遞 |
_execlp, _spawnlp |
Yes | 清單 | 繼承自呼叫處理序 |
_execvpe, _spawnvpe |
Yes | 陣列 | 新處理序的環境表格指標,以最後一個引數傳遞 |
_execlpe, _spawnlpe |
Yes | 清單 | 新處理序的環境表格指標,以最後一個引數傳遞 |
_execv, _spawnv |
No | 陣列 | 繼承自呼叫處理序 |
_execve, _spawnve |
No | 陣列 | 新處理序的環境表格指標,以最後一個引數傳遞 |
_execvp, _spawnvp |
Yes | 陣列 | 繼承自呼叫處理序 |