sys/wait.h
syswait.h,計算機程式語言函式,使用wait()和waitpid()函式時需要include這個標頭檔案。
簡介
編輯使用wait()和waitpid()函式時需要include這個標頭檔案
相關函式
編輯wait(等待子程式中斷或結束) 相關函式 waitpid(),fork()
表標頭檔案 #include #include
定義函式 pid_t wait (int * status);
waitpid(等待子程式中斷或結束) 相關函式 wait,fork
表標頭檔案 #include #include
定義函式 pid_t waitpid(pid_t pid,int * status,int options);
wait()函式說明
編輯wait()
會暫時停止目前程式的執行,直到有訊號來到或子程式結束。如果在呼叫wait()時子程式已經結束,則wait()會立即返回子程式結束狀態值。子程式的結束狀態值會由引數status返回,而子程式的程式識別碼也會一起返回。如果不在意結束狀態值,則引數status可以設成NULL。子程式的結束狀態值請參考waitpid()。
返回值 如果執行成功則返回子程式識別碼(PID),如果有錯誤發生則返回-1。失敗原因存於errno中。
wait()範例
編輯#include#include#include#includemain(){pid_t pid;int status,i;if(fork()= =0){printf(“This is the child process .pid =%dn”,getpid());exit(5);}else{sleep(1);printf(“This is the parent process ,wait for child...n”;pid=wait(&status);i=WEXITSTATUS(status);printf(“child’s
pid =%d .exit status=^dn”,pid,i);}}
執行 This is the child process.pid=1501This is the parent process .wait for child...child’s pid =1501,exit status =5
waitpid()函式說明
編輯waitpid()
會暫時停止目前程式的執行,直到有訊號來到或子程式結束。如果在呼叫wait()時子程式已經結束,則wait()會立即返回子程式結束狀態值。子程式的結束狀態值會由引數status返回,而子程式的程式識別碼也會一快返回。如果不在意結束狀態值,則引數status可以設成NULL。
引數pid為欲等待的子程式識別碼,其他數值意義如下:pid0 等待任何子程式識別碼為pid的子程式。
引數option可以為0 或下面的OR 組合WNOHANG 如果沒有任何已經結束的子程式則馬上返回,不予以等待。WUNTRACED 如果子程式進入暫停執行情況則馬上返回,但結束狀態不予以理會。
子程式的結束狀態返回後存於status,底下有幾個巨集可判別結束情況WIFEXITED(status)如果子程式正常結束則為非0值。
WEXITSTATUS(status)取得子程式exit()返回的結束程式碼,一般會先用WIFEXITED 來判斷是否正常結束才能使用此巨集。WIFSIGNALED(status)如果子程式是因為訊號而結束則此巨集值為真WTERMSIG(status)取得子程式因訊號而中止的訊號程式碼,一般會先用WIFSIGNALED 來判斷後才使用此巨集。WIFSTOPPED(status)如果子程式處於暫停執行情況則此巨集值為真。一般只有使用WUNTRACED 時才會有此情況。WSTOPSIG(status)取得引發子程式暫停的訊號程式碼,一般會先用WIFSTOPPED
來判斷後才使用此巨集。
返回值 如果執行成功則返回子程式識別碼(PID),如果有錯誤發生則返回-1。失敗原因存於errno中。
相關文章
- init sys
- Python--sysPython
- MySQL 5.7 SYS SCHEMAMySql
- SYS_CONTEXTContext
- sys.allocation_units與sys.system_internals_allocation_units的差別
- 轉:os和sys模組
- 使用SYS_CONTEXTContext
- SYS_CONTEXT & USERENVContext
- MySQL sys效能監控MySql
- 關於SYS.SM$TS_AVAIL,SYS.SM$TS_USED,SYS.SM$TS_FREE幾個檢視問題AI
- sys_stat_activity檢視
- Python常用模組之sysPython
- userenv() 和sys_context()Context
- ORACLE 忘記SYS密碼Oracle密碼
- SYS_CONTEXT小記!Context
- audit_sys_operations引數
- 修改ASM的SYS密碼ASM密碼
- SYS_OP_MAP_NONNULL操作Null
- SYS模式下物件的特性模式物件
- 奇妙的 sys 請求(轉)
- ORA-04063: package body SYS.DBMS_REGISTRY_SYS has errors (Doc ID 2165402.1)PackageError
- mysql 5.7 sys資料庫初探MySql資料庫
- golang.org/x/sys/unix: unrecognizedGolangZed
- sys_context函式用法Context函式
- SYS_PLSQL_* TYPE的生成原因SQL
- solairs 的sys-unconfigAI
- sys.argv[] 的使用詳解
- 【python】sys.argv[] 的用法Python
- system sys,sysoper sysdba 的區別
- Oracle USERENV和sys_contextOracleContext
- SYS_REFCURSOR系統遊標的使用
- MySQL sys庫常用SQL彙總大全MySql
- Python sys模組參考手冊Python
- sys_context函式的用法Context函式
- fatal error: sys/cdefs.h: No such file or directoryError
- oracle 合併多個sys_refcursorOracle
- Linux下建立GPIO(/sys/class/gpio)Linux
- 說說sys_context函式Context函式