用到的**:
1 #include
2 #include
3 #include
4 #include
5int
main()
613else
if(pid ==0)
1418
int status;
19while
(waitpid(-
1,&status,wnohang)==0
)//為了等待子程序退出
2024
if(status &
0x7f
)//子程序異常退出時才會進入,這時的(status & 0x7f)>0.
2529
printf
("exit child code:%d\n",(
(status >>8)
&0xff))
;30while(1
)3135return0;
36}
status 引數是乙個輸出型引數,由作業系統填充。 如果傳遞null,表示不關心子程序的退出狀態資訊。如果不為空, 作業系統會根據該引數,將子程序的退出資訊反饋給父程序。
雖然 status 是乙個 int ,但是它的高兩個位元組根本沒有用到,所以我們只研究status低16位。在低16位中,其中:
wait waitpid函式獲取狀態的使用
wifexited wstatus 如果子項正常終止 即通過呼叫exit 3 或 exit 2 或從main 返回 則返回true。wexitstatus wstatus 返回子項的退出狀態。它由狀態引數的最低有效8位組成,該狀態引數的子級是在呼叫exit 3 或 exit 2 時指定的,或者是ma...
變參函式詳解
在呼叫函式時,如果我們希望函式的引數個數是可變的,那麼便需要用到變參函式,既在每次函式呼叫時輸入的引數個數不定。我們需要知道以下兩點 1 函式形參入棧方向為自右向左 2 在乙個程序的記憶體空間中,棧低為高位址,棧頂為低位址。所以我們可以從最後乙個入棧的引數 形參第乙個 根據位址以及棧空間的特點依次找...
Mybatis的幾種傳參方式詳解
前言 單個pttzndv引數 單個引數的傳參比較簡單,可以是任意形式的,比如 或者 但是為了開發規範,盡量使用和入參時一樣。mapper如下 userinfo selectbyuserid string userid xml如下 select from user info where user id...