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

用fork()往文件里写数据问题

    来源: 互联网  发布时间:2016-01-28

    本文导语:  有这样一个程序:    #include      main()    {      FILE *fp;      int pid;       char msg1[]="Test 1 2 3..n";      char msg2[]="Hello,hello";      if((fp=fopen("testfile","w"))==NULL)         return 0;      fprintf(fp,"...

有这样一个程序:
   #include  
   main()
   {
     FILE *fp;
     int pid; 
     char msg1[]="Test 1 2 3..n";
     char msg2[]="Hello,hello";
     if((fp=fopen("testfile","w"))==NULL)
        return 0;
     fprintf(fp,"%s",msg1);
     if((pid=fork())==-1)
        return 0;
     fprintf(fp,"%s",msg2);
     fclose(fp);
     return 1;
   }
   对文件testfile中的输出结果有点不理解,
   结果是:Test 1 2 3..
           Hello,hello
           Test 1 2 3..
           Hello,hello
   ?

|
fork成功后,子进程是父进程的一个完美的复制品,包括文件缓冲区,所以fprintf(fp,"%s",msg1);只执行了一次,但是在fclose(fp);时两个进程的文件缓冲区都写到文件里了。

|
fork之前调用:
setbuf(fp, 0);
就不会有问题了

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












  • 相关文章推荐
  • 还是有关fork的问题,fork在一个函数中调用,我被搞胡涂了
  • 一个fork的问题
  • 新手的问题关于fork?
  • fork() 父子进程执行顺序问题
  • fork()函数入门级问题:fork()与进程数
  • fork的问题
  • 请教一个关于fork的问题。
  • minGW编译带fork函数的问题?
  • 一个简单的fork问题(那个高手来帮忙呀)
  • 关于fork创建进程的一个问题
  • fork与socket问题
  • 关于fork()的一个问题!?
  • 问个关于fork的小问题
  • fork问题
  • fork()复制进程的问题2
  • fork()问题
  • docker中文入门学习手册 iis7站长之家
  • 一个简单的fork()问题,求解···在线等
  • fork 带来的问题!
  • fork()复制进程的问题。
  • 奇怪:程序一fork子进程时就停住了,似乎根本不能fork子进程啊?
  • unix中的fork2与fork有设么区别?
  • 程序在fork前申请了内存若干,在fork后子进程是否需要释放父进程之前申请的内存
  • 如何理解fork函数返回2次啊?
  • 急于明白Fork的用法.请提供中文解释.谢谢.
  • 关于fork的不解
  • 弱弱的问:fork和exec的区别是什么?
  • 关于fork的讨论
  • 关于fork的疑问?
  • fork之后的输出
  • exit和fork是什么关系?他们是怎么配合使用的?


  • 站内导航:


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

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

    浙ICP备11055608号-3