關於fork()父子進程返回值的問題


 

我們都知道,父進程fork()之后返回值為子進程的pid號,而子進程fork()之后的返回值為0。那么,現在就有一個問題了,子進程fork()的返回值是怎么來的?如果子進程又執行了一遍fork()函數,那么,按着完全復制的效果,父進程應該還會再fork()一次才對啊。

其實,在fork()函數執行中,返回值是存放在寄存器eax中的,在子進程中fork()的結尾處,把eax置為0就可以啦。這樣,就造成一種子進程也完整運行一次fork()的“假象”

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM