您的位置:首页 > 编程语言

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

2017-08-27 07:37 281 查看
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函数执行一个程序时,才会分配堆和栈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unix 编程