|
|
如果你用ls -l命令查看上面的2个程序文件的话,你就会发现两个文件的大小差别很大。其中的原因就在于第一个程序是中的myarray是已经初始化的静态数据,是可执行模块的一部分,所以会比版本2的程序大很多。
在声明的时候没有显式的进行初始化的静态变量会在运行的时候被初始化为0,注意在程序的印象中,已经初始化的静态变量和未初始化的静态变量占据不同的区域。通常情况下,已经初始化的静态变量是可执行模块的一部分,而未初始化的静态变量则不是,当然,自动变量不是可执行模块的一部分。只有当定义他们的程序被调用的时候,才会分配内存。
在主存储器中程序印象的布局大致为:
|
上面的程序打印出了环境列表的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
上面的程序显示了如何使用getenv函数
|
上面的程序是一个带有退出处理程序的例子,退出处理程序输出了CPU的使用情况。
|
上面的例子演示了atexit函数的用法,大家注意输出的顺序。
|
上面的这个例子显示了system的用法。其余6个exec的变种大家自行查找学习。