永发信息网

子进程是否可以再创建子进程?

答案:2  悬赏:60  手机版
解决时间 2021-03-08 23:01
  • 提问者网友:浩歌待明月
  • 2021-03-08 10:11
在linux里我用两个fork()调用语句
fork();
fork();
之后,一共有几个进程呢?子进程会继续创建子进程吗?
最佳答案
  • 五星知识达人网友:往事埋风中
  • 2021-03-08 10:28
是个有趣的问题,我做了一下测试,总共一起4个进程,我分析了一下
父进程执行第一个fork,产生新的进程1,进程1接着往下执行就执行第二个fork,接着产生新的进程2,进程2往下执行。在这之间父进程执行完第一个fork后,开始执行第二个fork,产生进程3,进程3也继续往下执行。产生了3个子进程,加父进程一起共4个。在这个过程中要把握一点,新进程怎么执行的,要搞清楚,从fork后面开始执行的
全部回答
  • 1楼网友:舊物识亽
  • 2021-03-08 11:59
#include #include pid_t fork(void); 创建子进程。pid_t是int。如果成功,则返回子进程的pid给父进程,同时返回0给子进程。如果失败,则返回-1。 子进程是父进程的拷贝(据说linux内核是copy text segment、stack segment和heap segment,共享text segment,为了提高效率,开始也并不复制,直到父进程或者子进程修改内存内容时才复制)。子进程继承了共享父进程在调用fork之前打开的socket。这样就可以实现并发服务器,子进程去处理这个客户端的连接,而服务器接着做其它事情。 例如: pid = fork(); if(pid == 0){ }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯