[問題] fork()應用實例 in C++
#include<iostream>
#include<sys/types.h>
#include<unistd.h>
using namespace std;
int main()
{
fork();//產生child process
cout<<"hee"<<endl;
fork();//產生child process
cout<<"ha"<<endl;
fork();//產生child process
cout<<"ho"<<endl;
return 0;
}
我知道結果是會輸出14個
想請問執行fork()是產生1個子程序,那現在父程序先執行完再做子程序,還是說不依定?
我實在搞不清楚這程式的流程...
雖然有輸出結果,但還是看不出所以然...
請各位幫幫忙吧
這裡貼上執行結果:
[root@localhost plp411727]# ./funny
hee
ha
ho
[root@localhost plp411727]# ha
ho
ho
hee
ha
ho
ho
ha
ho
ho
ho
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.40.219
→
03/30 00:08, , 1F
03/30 00:08, 1F
推
03/30 00:09, , 2F
03/30 00:09, 2F
→
03/30 00:10, , 3F
03/30 00:10, 3F
→
03/30 00:16, , 4F
03/30 00:16, 4F
→
03/30 00:16, , 5F
03/30 00:16, 5F
→
03/30 00:17, , 6F
03/30 00:17, 6F
→
03/30 00:30, , 7F
03/30 00:30, 7F
→
03/30 00:31, , 8F
03/30 00:31, 8F
→
03/30 00:32, , 9F
03/30 00:32, 9F
→
03/30 00:35, , 10F
03/30 00:35, 10F
→
03/30 00:36, , 11F
03/30 00:36, 11F
→
03/30 00:38, , 12F
03/30 00:38, 12F
→
03/30 00:45, , 13F
03/30 00:45, 13F
→
03/30 00:47, , 14F
03/30 00:47, 14F
→
03/30 00:51, , 15F
03/30 00:51, 15F
→
03/30 00:52, , 16F
03/30 00:52, 16F
→
03/30 00:56, , 17F
03/30 00:56, 17F
→
03/30 00:56, , 18F
03/30 00:56, 18F
→
03/30 01:13, , 19F
03/30 01:13, 19F
→
03/30 01:24, , 20F
03/30 01:24, 20F
→
03/30 01:25, , 21F
03/30 01:25, 21F
→
03/30 12:28, , 22F
03/30 12:28, 22F
→
03/30 12:28, , 23F
03/30 12:28, 23F
→
03/30 12:38, , 24F
03/30 12:38, 24F
→
03/30 12:41, , 25F
03/30 12:41, 25F
→
03/30 13:18, , 26F
03/30 13:18, 26F
→
03/30 21:06, , 27F
03/30 21:06, 27F
→
03/30 21:07, , 28F
03/30 21:07, 28F
→
03/30 21:08, , 29F
03/30 21:08, 29F
→
03/30 21:08, , 30F
03/30 21:08, 30F
→
03/30 21:10, , 31F
03/30 21:10, 31F
→
03/30 21:10, , 32F
03/30 21:10, 32F