linux 关于fork问题

li932334554 2012-10-03 04:49:56
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>

main(void)
{
pid_t pid;
pid=fork();
if(pid<0)
printf("error in fork");
else if(pid==0)
{
sleep(100);
printf("so\n");
}
else
printf("father\n");
}
为什么程序是执行打印father,就跳出了程序,但是程序没结束,100秒后打印son。
结果为:
[lfy@localhost ~]$ vim fork.c
[lfy@localhost ~]$ gcc -o fork fork.c
[lfy@localhost ~]$ ./fork
father
[lfy@localhost ~]$ so

[lfy@localhost ~]$
...全文
133 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
li932334554 2012-10-03
  • 打赏
  • 举报
回复
我知道了,谢谢各位了
jackyjkchen 2012-10-03
  • 打赏
  • 举报
回复
有什么奇怪的么?

楼主应该看《UNIX环境高级编程》
羽飞 2012-10-03
  • 打赏
  • 举报
回复
返回值是0,那么这里运行的就是子程序,大于0就是父程序,父程序打印完“father"就退出了
但是父程序退出子程序不会退出,子程序会继续运行

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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