vim從一般模式切換編輯模式 如何理解fork調(diào)用一次返回兩次的?
如何理解fork調(diào)用一次返回兩次的?Fork調(diào)用是用于創(chuàng)建子進(jìn)程的系統(tǒng)函數(shù)。然后,當(dāng)fork調(diào)用成功時(shí),還會(huì)有一個(gè)子進(jìn)程。此時(shí),fork將返回兩次,一次返回父進(jìn)程,另一次返回子進(jìn)程。父進(jìn)程的返回值是所
如何理解fork調(diào)用一次返回兩次的?
Fork調(diào)用是用于創(chuàng)建子進(jìn)程的系統(tǒng)函數(shù)。然后,當(dāng)fork調(diào)用成功時(shí),還會(huì)有一個(gè)子進(jìn)程。此時(shí),fork將返回兩次,一次返回父進(jìn)程,另一次返回子進(jìn)程。父進(jìn)程的返回值是所創(chuàng)建子進(jìn)程的PID,子進(jìn)程的返回值是0。通過這個(gè)返回值,我們可以確定是返回到父進(jìn)程還是子進(jìn)程。如果fork調(diào)用失敗,它只返回一次,即只返回父進(jìn)程,返回值為-1。這是Linux的基礎(chǔ)。許多公司在招聘時(shí)都會(huì)研究這一技術(shù)要點(diǎn)。有人建議,如果你想加深你的理解,你可以實(shí)際編碼和驗(yàn)證它。
關(guān)于fork()函數(shù),誰來解釋一下?
如果你不能用幾句話把它說清楚,那就回去仔細(xì)閱讀,閱讀書中的例子,在你理解書中的例子之前不要自己寫程序。理解之后,就不會(huì)這樣亂寫fork()程序了。簡(jiǎn)單地說:fork()分為兩部分,子進(jìn)程返回值為0。返回值-1表示fork失敗。如果返回值大于0,則為父進(jìn)程。int main(){int pid=fork()if(pid