• 主页
  • 系统维护与使用
  • 应用程序开发
  • 内核源代码
  • 驱动程序开发
  • CPU和硬件区
  • UNIX文化
  • Solaris
  • Power Linux

关于fork的疑问

killme2008 2008-02-21 05:02:55
一段很简单的程序:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

int main()
{
FILE *fp;
int pid;
char msg1[]="Test 1 2 3...";
char msg2[]="Hello,hello";

if((fp=fopen("testfile2","w"))==NULL)
return 0;
fprintf(fp,"%s %d \n",msg1,getpid());

if((pid=fork())==-1)
return 0;

fprintf(fp,"%s %d \n",msg2,getpid());
fclose(fp);
return 1;
}

执行查看testfile2类似下面的结果:

Test 1 2 3... 2565
Hello,hello 2566
Test 1 2 3... 2565
Hello,hello 2565

不明白为什么父进程会输出msg1两次??如果使用unix io替代标准io,结果很好理解,输出两次msg2和一次msg1。
...全文
31 点赞 收藏 回复
写回复
回复

还没有回复,快来抢沙发~

发动态
发帖子
Linux/Unix社区
创建于2007-08-27

7067

社区成员

7.3w+

社区内容

Linux/Unix社区 应用程序开发区
社区公告
暂无公告