当前位置:  技术问答>linux和unix

fork调用产生的子进程,还能不能创建下一级的子进程?

    来源: 互联网  发布时间:2016-05-20

    本文导语:  请指教,在LINUX系统的C语言程序里,我使用fork()调用在父进程中创建了一个子进程,那么,我能否再以子进程作为父进程去创建另一个子进程。我写的测试代码里是不行的,否则子子孙孙无穷匮也。想请教这是何机制...

请指教,在LINUX系统的C语言程序里,我使用fork()调用在父进程中创建了一个子进程,那么,我能否再以子进程作为父进程去创建另一个子进程。我写的测试代码里是不行的,否则子子孙孙无穷匮也。想请教这是何机制?


 if ((cld_pid = fork()) == 0) { 
      puts("儿子");
      exit(0);
   }
   else
      puts("老子");

|
调用fork的进程就是父进程。父子进程在fork调用点以后执行的代码是一样的。
在子进程中再次调用fork,会再创建一个子进程。

Linux中所有的进程都是直接或间接从0号进程fork来的。

|

|
可以啊,
我想楼主是没有理解你这里的儿子进程是从哪里开始运行吧.你的测试方案是不行的。

|
绝对可以。。因为linux下这么多进程,他们的都是1号进程fork出来的。

|
debian:~# ps -aef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 23:41 ?        00:00:00 init [5]
root         2     1  0 23:41 ?        00:00:00 [migration/0]
root         3     1  0 23:41 ?        00:00:00 [ksoftirqd/0]
root         4     1  0 23:41 ?        00:00:00 [events/0]
root         5     1  0 23:41 ?        00:00:00 [khelper]
root         6     1  0 23:41 ?        00:00:00 [kthread]
root         9     6  0 23:41 ?        00:00:00 [kblockd/0]
root        10     6  0 23:41 ?        00:00:00 [kacpid]
root        71     6  0 23:41 ?        00:00:00 [kseriod]
root       111     6  0 23:41 ?        00:00:00 [pdflush]
root       112     6  0 23:41 ?        00:00:00 [pdflush]
root       113     6  0 23:41 ?        00:00:00 [kswapd0]
root       114     6  0 23:41 ?        00:00:00 [aio/0]
root       562     6  0 23:41 ?        00:00:00 [khubd]
root       635     6  0 23:42 ?        00:00:00 [scsi_eh_0]
root       928     6  0 23:42 ?        00:00:00 [kjournald]
root      1090     1  0 23:42 ?        00:00:00 udevd --daemon
root      1400     6  0 23:42 ?        00:00:00 [kgameportd]
root      1403     6  0 23:42 ?        00:00:00 [kpsmoused]
root      1663     6  0 23:42 ?        00:00:00 [kmirrord]
root      1919     1  0 23:42 ?        00:00:00 /sbin/syslogd
root      1930     1  0 23:42 ?        00:00:00 /sbin/klogd -x
root      1997     1  0 23:42 ?        00:00:00 /usr/sbin/acpid -c /etc/acpi/eve
root      2023     1  0 23:42 ?        00:00:00 /usr/sbin/sshd
root      2044     1  0 23:42 ?        00:00:00 /usr/sbin/cron
root      2068     1  0 23:42 tty1     00:00:00 /sbin/getty 38400 tty1
root      2084     1  0 23:42 ?        00:00:00 dhclient3 -pf /var/run/dhclient.
root      2091  2023  0 23:42 ?        00:00:00 sshd: root@pts/0
root      2093  2091  0 23:42 pts/0    00:00:00 -bash
root      2125  2093  0 23:46 pts/0    00:00:00 ps -aef

楼主自己看下吧,PPID是父进程,PID是子进程。其实都是“一个祖宗传下来”的,呵呵...

|
原始祖先为 init

|
pid_t pid;

if((pid = fork) 

    
 
 

您可能感兴趣的文章:

  • 奇怪:程序一fork子进程时就停住了,似乎根本不能fork子进程啊?
  • 程序在fork前申请了内存若干,在fork后子进程是否需要释放父进程之前申请的内存
  • 主进程有两个线程,fork子进程后复制主进程两个线程的内存么?
  • 父进程发包,fork子进程收回传的包,sock_filter后,子进程收不到包
  • fork 一个字进程 将子进程的输出作为主进程的输入
  • fork出来的子进程能通知主进程自己的进度吗
  • 用fork产生一个进程,但是在子进程里无法监视父进程变量的变动。
  • 如果一个server进程要fork许多子进程,但不等待子进程终止,也不希望子进程结束后处于僵进程状态直到父进程终止。请问可采用什么方法实现
  • 调用fork操作后,子进程有返回,父进程挂死,什么原因?
  • fork一个子进程后在打开一个文件,如何在子进程中使用这个打开的文件描述符号
  • 问。fork()出来的子进程如果遇到brokenPIPE的错误,会影响父进程的关闭吗?
  • fork() 父子进程执行顺序问题
  • 怎样编写一段程序,要求调用fork并在子进程中建立一个新的对话期。验证子进程变成了进程组长而且不再有控制终端。
  • 请问fork子进程后,怎么修改子进程的所属用户。
  • fork出来的进程不能完全继承父进程的属性吗?
  • 创建进程的系统调用clone()和fork()
  • 在一个进程中我定义了几个全局变量,然后我又fork了几个子进程,子进程中是否可以各自对全局变量进行修改,如果各子进程都对其进行修改,
  • 关于fork创建进程的一个问题
  • 如何向由fork出来的进程家族发送信号?
  • fork()复制进程的问题2
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 还是有关fork的问题,fork在一个函数中调用,我被搞胡涂了
  • 执行一个main函数程序时,unix操作系统调用什么创建进程?fork?newproc?
  • Linux fork函数的系统调用实现过程是什么呢?
  • Unix中fork系统调用
  • 关于跨越fork调用使用管道,会打开4个文件描述符?
  • fork~exec不会使用,请问怎么使用,我只是想简单的用进程调用一个程序。
  • fork()首次调用新创建进程时,其入口在哪里?在线等等
  • 急!急!fork()一个子进程,然后再子进程中调用execl出了问题。
  • 问个很简单的问题,求进程调用FORK()的代码
  • 各位前辈,当代码执行一个系统调用fork()后,为什么如果共享页设置了写时拷贝位,在父进程之前调度子进程将具有优越性?内核如何能使子进
  • 汇编调用fork的问题
  • linux下C语言编程调用fork的问题
  • 有关fork()调用的初级问题,急急急!!!高分求助。
  • linux内核高手进!关于调用__fork()时0号进程的子进程才能与父进程共享PID的困惑
  • 关于fork系统调用
  • 调用两次fork如何避免僵死进程呢?
  • 问个有难度的问题,2.6内核fork调用的怎么是clone
  • 关于fork,系统调用,库函数的问题
  • unix中的fork2与fork有设么区别?
  • fork()函数入门级问题:fork()与进程数
  • 一个fork的问题
  • 新手的问题关于fork?
  • 如何理解fork函数返回2次啊?
  • 急于明白Fork的用法.请提供中文解释.谢谢.
  • 关于fork的不解
  • 弱弱的问:fork和exec的区别是什么?
  • 关于fork的讨论
  • 关于fork的疑问?
  • fork之后的输出
  • exit和fork是什么关系?他们是怎么配合使用的?
  • fork函数,在线等待,马上结贴。谢谢!!!!!!!!!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3