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

fork之后的输出

    来源: 互联网  发布时间:2015-03-16

    本文导语:  简单问题,运行时“Before fork!”总出现两次;   另外系统提示符[xx@localhost ..]还夹在程序输出的之间。 这么回事? 典型输出:Before fork!   Before fork!   #--this is subP.the ID is xxxxx   [xx@localhost ..]@--parentP.after...

简单问题,运行时“Before fork!”总出现两次;
  另外系统提示符[xx@localhost ..]还夹在程序输出的之间。
这么回事?
典型输出:Before fork!
  Before fork!
  #--this is subP.the ID is xxxxx
  [xx@localhost ..]@--parentP.after fork.

#include "unistd.h"
#include "sys/types.h"
#include "stdio.h"

main()
{
pid_t pid;
printf("nBefore fork!");
if((pid=fork())>0)
{ printf("n#--this is subP.the ID is %d.",pid);
exit(0);
}
else{printf("n@--parentP.after fork.");
}
printf("n^^^^^^^^^^^^");
exit(0);
}
}

|
1."Before fork"被输出两次是因为它在fork之前被缓冲存起来没有实际输出到设备,如果紧跟printf("nBefore fork!");之后使用fflush(stdout)它将立即输出到设备将不会有两次输出。
2.父进程恰好先于子进程输出之前终止了,因此提示符出现于子进程的输出之前。
3.从字面上看,父子进程的理解反了。

|
fork复制了父京城的文件局并,包括为输出的数据
所以Before fork被父子进程都打印了
改称printf("nBefore fork!n");强制输出就没事了

|
应该是父进程推出就会有提示符

|
这个问题相当经典!

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












  • 相关文章推荐
  • 奇怪:程序一fork子进程时就停住了,似乎根本不能fork子进程啊?
  • unix中的fork2与fork有设么区别?
  • 还是有关fork的问题,fork在一个函数中调用,我被搞胡涂了
  • 程序在fork前申请了内存若干,在fork后子进程是否需要释放父进程之前申请的内存
  • fork()函数入门级问题:fork()与进程数
  • 一个fork的问题
  • 新手的问题关于fork?
  • 如何理解fork函数返回2次啊?
  • 急于明白Fork的用法.请提供中文解释.谢谢.
  • 关于fork的不解
  • 弱弱的问:fork和exec的区别是什么?
  • 关于fork的讨论
  • 关于fork的疑问?
  • fork() 父子进程执行顺序问题
  • 关于fork创建进程的一个问题
  • exit和fork是什么关系?他们是怎么配合使用的?
  • fork函数,在线等待,马上结贴。谢谢!!!!!!!!!!!!
  • fork的问题
  • 请教 linux的fork从什么版本开始支持COW?
  • c++ 和 fork


  • 站内导航:


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

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

    浙ICP备11055608号-3