免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1352 | 回复: 7
打印 上一主题 下一主题

unix环境高级编程里的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-17 20:27 |只看该作者 |倒序浏览
P146:第八章进程控制
#include <ourhdr.h>;
int global=12;
main()
{
    int sum=8;
    pid_t pid;
    printf("before vfork\n";
    if((pid=vfork())<0)
       {printf("vfork error\n";
        exit(0);
        }
    else if(pid==0)
       {sum++;
        global++;
        exit(0);
        }
    printf("sum=%d,global=%d\n",sum,global);
    exit(0);
}
书上说的运行结果是:before vfork
而我运行的结果 :before vfork
sum=9,global=13
大虾们帮帮忙

论坛徽章:
0
2 [报告]
发表于 2005-03-17 20:34 |只看该作者

unix环境高级编程里的问题

你到底想要问什么问题?

论坛徽章:
0
3 [报告]
发表于 2005-03-17 20:34 |只看该作者

unix环境高级编程里的问题

我的也是这样的,和vfork的实现相关

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-03-18 09:00 |只看该作者

unix环境高级编程里的问题

Any other result?

论坛徽章:
1
15-16赛季CBA联赛之四川
日期:2016-02-15 17:12:32
5 [报告]
发表于 2005-03-18 10:09 |只看该作者

unix环境高级编程里的问题

vfork()后父子共享数据区吗?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-03-18 10:29 |只看该作者

unix环境高级编程里的问题

[quote]原帖由 "wujiajia"]vfork()后父子共享数据区吗?[/quote 发表:


Certainly, befor the child do exec or exit.

论坛徽章:
0
7 [报告]
发表于 2005-03-18 11:28 |只看该作者

unix环境高级编程里的问题

在copy-on-write技术之后,还用vfork简直就是(省略俩字),呵呵。

linux并没有真正提供vfork实现,那个我们能见到的vfork根本就是fork,不过加了信号量控制父子进程的行为。

vfork来自BSD,BSD的man页中明确声明
This  system  call will be eliminated when proper system sharing mechanisms  are  mplemented.  Users  should  not  depend  on  the  memory  sharing semantics of vfork as it will, in that case, be made synonymous to fork."

论坛徽章:
0
8 [报告]
发表于 2005-03-18 13:18 |只看该作者

unix环境高级编程里的问题

copy-on-write技术是什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP