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

问一个关于fock的问题

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

    本文导语:  #include  #include  #include  int main(void) { pid_t child; if (!(child = fork())) { printf("in childn"); exit(0); } printf("in parent -- child is %dn", child); return 0; } 以上程序段的输出可能是这样的吗? in parent -- child is 3708 in child ...

#include 
#include 
#include 

int main(void) {
pid_t child;

if (!(child = fork())) {
printf("in childn");
exit(0);
}

printf("in parent -- child is %dn", child);

return 0;
}

以上程序段的输出可能是这样的吗?
in parent -- child is 3708
in child
如果可能,什么情况下会出现?

|
in parent -- child is 3708 
in child 
很正常啊.fork后,子,父进程并行运行,谁先输出结果都正常.

#include 
#include 
#include 

int main(void) {
    pid_t child;

    if (!(child = fork())) {
        sleep(2);                //这样你就可以让父进程先输出了.
        printf("in childn");
        exit(0);
    }

    printf("in parent -- child is %dn", child);

    return 0;
}


|

fork后父子进程先后顺序是不确定的
除非人为加入同步条件

|
谁先都有可能的

除非用vfork()

或者父进程用wait等子进程

|
LZ 是 掌柜,
难道是我们没理解到你的问题?

    
 
 

您可能感兴趣的文章:

  • fock的简单问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • fock()开出的子进程的进程ID是否进程ID都大于父进程的?


  • 站内导航:


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

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

    浙ICP备11055608号-3