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