處理序控制和環境控制

使用處理序控制常式可從程式內啟動、停止及管理處理序。 使用環境控制常式可取得和變更作業系統環境的相關資訊。

進程和環境控制功能

常式 使用
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 陣列 繼承自呼叫處理序

另請參閱

依類別排序的通用 C 執行階段常式