fork() || fork()和fork() fork()笔试题
生活随笔
收集整理的這篇文章主要介紹了
fork() || fork()和fork() fork()笔试题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
程序一:
#include "stdio.h" #include "sys/types.h" #include "unistd.h"int main() {fork() || fork();printf("+");return 0; }結(jié)果輸出3個"+",共創(chuàng)建3個進(jìn)程。 fork()給子進(jìn)程返回一個零值,而給父進(jìn)程返回一個非零值; 在main這個主進(jìn)程中,首先執(zhí)行 fork() || fork(), 左邊的fork()返回一個非零值,根據(jù)||的短路原則,前面的表達(dá)式為真時,后面的表達(dá)式不執(zhí)行,故包含main的這個主進(jìn)程創(chuàng)建了一個子進(jìn)程, 由于子進(jìn)程會復(fù)制父進(jìn)程,而且子進(jìn)程會根據(jù)其返回值繼續(xù)執(zhí)行,就是說,在子進(jìn)程中, fork() ||fork()這條語句左邊表達(dá)式的返回值是0, 所以||右邊的表達(dá)式要執(zhí)行,這時在子進(jìn)程中又創(chuàng)建了一個進(jìn)程, 即main進(jìn)程->子進(jìn)程->子進(jìn)程,一共創(chuàng)建了3個進(jìn)程。
程序二:
#include "stdio.h" #include "sys/types.h" #include "unistd.h"int main() {fork() && fork();printf("+");return 0; } 結(jié)果輸出3個"+",共創(chuàng)建3個進(jìn)程。
程序三: #include "stdio.h" #include "sys/types.h" #include "unistd.h"int main() {fork() || fork() || fork();printf("+");return 0; } 結(jié)果輸出4個"+",共創(chuàng)建4個進(jìn)程。
程序四:
#include "stdio.h" #include "sys/types.h" #include "unistd.h"int main() {fork() && fork() && fork();printf("+");return 0; } 結(jié)果輸出4個"+",共創(chuàng)建4個進(jìn)程。
程序五:
#include "stdio.h" #include "sys/types.h" #include "unistd.h"int main() {fork() || fork() || fork() || fork();printf("+");return 0; } 結(jié)果輸出5個"+",共創(chuàng)建5個進(jìn)程。
程序六:
#include "stdio.h" #include "sys/types.h" #include "unistd.h"int main() {fork() && fork() && fork() && fork();printf("+");return 0; } 結(jié)果輸出5個"+",共創(chuàng)建5個進(jìn)程。
總結(jié)
以上是生活随笔為你收集整理的fork() || fork()和fork() fork()笔试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2015年58同城面试题
- 下一篇: R语言的一个加法函数