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

关于fork函数的一些疑问~

    来源: 互联网  发布时间:2017-05-30

    本文导语:  #include #include #include int main(int argc,char* argv[]) {     printf("before fork~n");     if(fork()  0)     {         printf("this is parent~n");         int stat;         pid_t t=wait(&stat);         if(WIFEXITED(stat))         ...

#include
#include
#include


int main(int argc,char* argv[])
{
    printf("before fork~n");
    if(fork()  0)
    {
        printf("this is parent~n");
        int stat;
        pid_t t=wait(&stat);
        if(WIFEXITED(stat))
            printf("正常终止~n");
    }
    else
    {
        printf("this is children~n");  
        sleep(9);
    }
    return 0;
}

问题在于,关于fork函数的一些疑问~[图片]
为什么输出会是这个样子?printf会输出两次?而且如果我只更改if else之间的顺序之后,按理不是父进程调用wait,而子进程sleep,会导致父进程被阻塞么,可是那样子不会被阻塞,但是printf倒会是正常的。。。请问大家这是怎么回事

|
调用了两次fork有四个进程呀

|
你执行了两次fork(),总共产生了四个进程。
一般fork这样用:
#include
#include
#include


int main(int argc,char* argv[])
{
    printf("before fork~n");
    pid_t pid = fork();
//  if(fork()  0)
    {   
        printf("this is parent~n");
        int stat;
        pid_t t=wait(&stat);
        if(WIFEXITED(stat))
            printf("正常终止~n");
    }   
    else
    {   
        printf("this is children~n");  
        sleep(9);
    }   
   return 0;
}

    
 
 

您可能感兴趣的文章:

  • 还是有关fork的问题,fork在一个函数中调用,我被搞胡涂了
  • 如何理解fork函数返回2次啊?
  • fork函数的源代码在哪呢
  • linux的fork()函数
  • minGW编译带fork函数的问题?
  • Linux fork() 函数
  • 关于fork()函数
  • fork函数的理解。。
  • fork函数,在线等待,马上结贴。谢谢!!!!!!!!!!!!
  • 关于fork函数
  • fork函数详解?
  • fork函数的处理流程
  • 执行一个main函数程序时,unix操作系统调用什么创建进程?fork?newproc?
  • Linux下关于fork()的函数
  • 谁有unix下c的编程接口资料,如fork函数和killppid的说明
  • Linux fork函数的系统调用实现过程是什么呢?
  • linux fork 函数问题
  • 费解呀,函数fork()的疑惑?
  • 怎么理解fork()函数返回两次值?
  • linux fork()函数的疑惑
  • 关于fork的疑问?
  • fork()的疑问
  • linux中fork函数对于子进程地址空间的一点疑问
  • 关于fork 的一点疑问...
  • fork的疑问
  • 关于 fork 管道通信的疑问
  • 对于fork的一点疑问,麻烦高手看看,谢谢~
  • 一个简单的关于fork()的代码疑问
  • 关于fork()和sleep()程序的疑问,请高手指点
  • 关于fork函数的疑问
  • linux中用fork启动新进程后,我有一些疑问!请大家帮忙解释下!
  •  
    本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.169IT.COM)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 奇怪:程序一fork子进程时就停住了,似乎根本不能fork子进程啊?
  • unix中的fork2与fork有设么区别?
  • 程序在fork前申请了内存若干,在fork后子进程是否需要释放父进程之前申请的内存
  • 一个fork的问题
  • 新手的问题关于fork?
  • 急于明白Fork的用法.请提供中文解释.谢谢.
  • 关于fork的不解
  • 弱弱的问:fork和exec的区别是什么?
  • 关于fork的讨论
  • fork之后的输出
  • fork() 父子进程执行顺序问题
  • 关于fork创建进程的一个问题
  • exit和fork是什么关系?他们是怎么配合使用的?
  • fork的问题
  • 请教 linux的fork从什么版本开始支持COW?
  • c++ 和 fork
  • 请教一个关于fork的问题。
  • "fork(2)" 中这个2表示什么意思
  • 创建一个子进程,什么时候该用clone()而不是fork()?
  • 一个简单的fork问题(那个高手来帮忙呀)


  • 站内导航:


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

    ©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号