10-练习
6.9 练习
6-1. 编译程序清单6-1中的程序(mem_segments.c),使用ls -l命令显示可执行文件的大小。虽然该程序包含一个大约10MB的数组,但可执行文件大小要远小于此,为什么?
6-2. 编写一个程序,观察当使用longjmp()函数跳转到一个已经返回的函数时会发生什么?
6-3. 使用getenv()函数、putenv()函数,必要时可直接修改environ,来实现setenv()函数和unsetenv()函数。此处的unsetenv()函数应检查是否对环境变量进行了多次定义,如果是多次定义则将移除对该变量的所有定义(glibc版本的unsetenv()函数实现了这一功能)。
①译者注:例如,以寄存器取代变量。
②译者注:\0。
③译者注:请读者仔细思考C语言中数组与指针的对等关系。
④译者注:即上文所谓静态作用域。