linux一个简单的fork

jack_leiwin 2013-10-16 03:55:15
1先展示两个子函数
//add.c

#include<stdio.h>
int main()
{
int a=3,b=2;
printf(a+b=%d\n",a+b);

return 0;
}

//minus.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!这句话哪儿去啦?

...全文
194 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack_leiwin 2013-10-18
  • 打赏
  • 举报
回复
还有没有大牛了呢?
AnYidan 2013-10-16
  • 打赏
  • 举报
回复
引用 3 楼 max_min_ 的回复:
子进程的输出缓冲阻塞了!没有刷新输出缓冲区! 加"\n"或者fflush(stdout)都可以! ps: 上面加法减法程序printf函数少了一个左双引号!
++
jack_leiwin 2013-10-16
  • 打赏
  • 举报
回复
/*子函数修正*/
//add.c
#include<stdio.h> 
int main()
{
int a=3,b=2;
printf("a+b=%d\n",a+b);
return 0;
}
//minus.c
#include<stdio.h> 
int main()
{
int a=3,b=2;
printf("a-b=%d\n",a-b);
return 0;
}
max_min_ 2013-10-16
  • 打赏
  • 举报
回复
子进程的输出缓冲阻塞了!没有刷新输出缓冲区! 加"\n"或者fflush(stdout)都可以! ps: 上面加法减法程序printf函数少了一个左双引号!
missheaven2011 2013-10-16
  • 打赏
  • 举报
回复
printf("child process running , minus sucessed!"); 改为 printf("child process running , minus sucessed!\n"); 试试
jack_leiwin 2013-10-16
  • 打赏
  • 举报
回复
//minus函数修正
//minus.c

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

return 0;
}


内容概要:本文深入探讨了Linux进程创建的核心技术——fork函数。首先介绍了fork函数在Linux进程创建中的重要性及其基本概念,强调它是创建新进程的关键手段,允许父进程“分裂”出子进程,二者独立运行但又相互关联。接着详细解析了fork函数的基本语法、返回值机制以及背后的复制过程,包括进程控制块(PCB)的创建、虚拟地址空间的分配、写时复制(COW)技术和文件描述符表的复制等。文中通过简单和复杂的代码实战案例,展示了fork函数的实际应用,如网络服务进程和Shell脚本执行中的多进程处理。最后讨论了使用fork函数时需要注意的问题,如父子进程资源独立性、避免僵尸进程产生和文件描述符共享处理等。; 适合人群:有一定Linux基础,对进程管理和多进程编程感兴趣的开发人员、运维工程师和系统管理员。; 使用场景及目标:①理解fork函数的工作原理及其在多进程编程中的应用;②掌握通过fork函数实现网络服务进程和Shell脚本命令执行的方法;③学习如何避免僵尸进程、正确处理文件描述符共享等问题,确保程序稳定运行。; 其他说明:本文不仅帮助读者理解fork函数的基本概念和用法,还引导读者思考进程通信、进程调度等更广泛的Linux进程管理领域,鼓励进一步探索Linux系统编程的深层次内容,提升在Linux环境下的编程技能。

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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