處理序控制和環境控制
使用處理序控制常式可從程式內啟動、停止及管理處理序。 使用環境控制常式可取得和變更作業系統環境的相關資訊。
進程和環境控制功能
常式 | 使用 |
---|---|
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 | 陣列 | 繼承自呼叫處理序 |