UNIX环境高级编程习题——第七章

7.1 在Intel x86系统上,使用Linux,如果执行一个输出“hello world”的程序但不调用exit或return,则程序的返回代码13(用shell检查),解释其原因:

原因:printf的返回值变为main函数的返回值,不同的系统上编译此类程序由不同的终止码。

7.2 图7-3中的printf函数的结果何时才被真正输出?

当程序处于交互运行方式时,标准输出通常处于行缓冲方式,所以当输出换行符时,上次的结果才被真正输出。如果标准输出被定向到一个文件,而标准输出处于全缓冲方式,则当标准I/O清理操作执行时,结果才真正被输出。

7.5 C语言的typedef为处理终止程序定义了一个新的数据类型 Exitfunc,使用该类型修改atexit的原型

typedef void Exitfunc(void);
int     atexit(Exitfunc *func);

7.7 在7.6节结尾处size命令输出结果中,为什么没有给出堆和栈的大小?

只有通过exec函数执行一个程序时,才会分配堆和栈。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值