linuxC中的fork问题,请教大侠帮忙解答
来源: 互联网 发布时间:2016-10-20
本文导语: 在linuxC中如果一个进程1fork出了一个进程2 那么在进程2中fork了一个进程3 进程3应该算进程2的子进程还是1的子进程啊 如果进程2在进程3未完成时返回,那么进程3还会返回么 | 你可以按照你说的把进程1,2,3...
在linuxC中如果一个进程1fork出了一个进程2
那么在进程2中fork了一个进程3
进程3应该算进程2的子进程还是1的子进程啊
如果进程2在进程3未完成时返回,那么进程3还会返回么
那么在进程2中fork了一个进程3
进程3应该算进程2的子进程还是1的子进程啊
如果进程2在进程3未完成时返回,那么进程3还会返回么
|
你可以按照你说的把进程1,2,3的pid,ppid分别打印出来,分析下他们之间的关系,
进程3是进程2的子进程,进程3的ppid肯定是进程2的pid
进程3在执行完后肯定是会返回的,不过由于其父进程(进程2)在它退出之前退出,它本身(进程3)将会变成孤儿进程,由系统守护进程(init进程,其pid=1)领养,由init来回收其所占有的系统资源,这种使用方式可以避免产生僵尸进程
进程3是进程2的子进程,进程3的ppid肯定是进程2的pid
进程3在执行完后肯定是会返回的,不过由于其父进程(进程2)在它退出之前退出,它本身(进程3)将会变成孤儿进程,由系统守护进程(init进程,其pid=1)领养,由init来回收其所占有的系统资源,这种使用方式可以避免产生僵尸进程
|
父子进程代码是一样的
进程2中有一段代码fork出进程3,那么这个进程3就属于进程2了。再回去看下进程1,如果进程1也运行到这段代码,那么进程1也会fork出一个新的子进程,比如进程4(不会是进程3)。
所以在进程2中fork的进程就是属于进程2,进程1fork的进程就属于进程1。
第2个问题不是很清楚,不过父进程终止了,子进程也会终止吧?
这是我的看法哈,我还学的不深。大家讨论讨论……
进程2中有一段代码fork出进程3,那么这个进程3就属于进程2了。再回去看下进程1,如果进程1也运行到这段代码,那么进程1也会fork出一个新的子进程,比如进程4(不会是进程3)。
所以在进程2中fork的进程就是属于进程2,进程1fork的进程就属于进程1。
第2个问题不是很清楚,不过父进程终止了,子进程也会终止吧?
这是我的看法哈,我还学的不深。大家讨论讨论……
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。