orange 一个操作系统的实现 较新的gcc编译导致fork不出child的问题

第十章第a小节的地方无法fork出child,原版光盘镜像可运行,显然这又是一个编译器升级之后的问题

通过trace打印发现child的limit值为零
在这里插入图片描述
继续往上去跟踪,发现一处计算可能出现问题
在这里插入图片描述
写一个简单的demo来验证这个问题
在这里插入图片描述在这里插入图片描述
发现它竟然给我默认为零了??然后我变量a却不会给我报错(实际上也不会报错,因为1048575远远小于int的最大值),那也就是说编译器提前预测了会超过int嘛?反正我也是醉了,改掉以后,fork正常运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值