linux多线程输出流问题

jack_leiwin 2013-10-22 07:18:18
//add.c
#include<stdio.h> 
int main()
{
int a=3,b=2;
printf("a+b=%d\n",a+b);
return 0;
}

//minux.c
#include<stdio.h> 
int main()
{
int a=3,b=2;
printf("a-b=%d\n",a-b);
return 0;
}


//核心代码
#include<stdio.h>
#include<unistd.h>
int main()
{

int pid = fork();

if(pid < 0 )

{

printf("make process error!");

return 0;

}

if(pid == 0 )

{

printf("child process running , minus sucessed!");

execl("minus",NULL); //输出a-b=1;
}

else

{

printf("father process running , add sucessed!\n");

execl("add",NULL);//输出a+b=5;
}


return 0;

}


################################################
运行结果
father process running , add sucessed!
a+b=5;
a-b=1;
################################################


各位大神前辈啊,child process running,minus successed!这句话哪儿去啦?
...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ufent 2013-10-28
  • 打赏
  • 举报
回复
进程是fork 或者vfork+exec系列函数 线程是pthread系列函数
crazykiss521 2013-10-25
  • 打赏
  • 举报
回复
。。。这个是父子进程关系,不是什么多线程!
mozuyuan 2013-10-25
  • 打赏
  • 举报
回复
父子两个进程是互不相关的,由进程调度来实现的,而且你用了execl函数,这个函数会覆盖掉原来的进程,建议你用 gdb 调试一下吧,并不是每次输出都是一样的
jack_leiwin 2013-10-22
  • 打赏
  • 举报
回复
//minus.c
#include<stdio.h> 
int main()
{
int a=3,b=2;
printf("a-b=%d\n",a-b);
return 0;
}

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧