1.八种结束Linux进程的方法:

五种正常终止方式:

main函数返回;

调用exit;

调用_exit或_Exit

最后一个线程从其启动例程返回

最后一个线程调用pthread_exit

三种异常终止方式:

调用abort。

接收到一个信号终止;

最后一个线程对取消请求做出响应。

exit函数与_exit  _Exit函数的差别是exit函数在结束进程之前会调用各种终止处理程序,关闭全部IO流,这会造成全部缓冲中的数据被冲洗(写到磁盘文件);

atexit(void (*fun)void)函数,用来给进程注冊函数。退出时会运行注冊过的函数。注冊几次会调用几次。

2.命令行參数与环境表:

extern char **environ;  //每一个程序都会有一张环境表,与參数表一样,环境表也是一个字符指针数组,当中每一个指针以NULL(\0)结束;

全局变量environ指向了该环境表的首地址;

#include <stdio.h>

int main(int argc, char **argv, char **env)
{
int i; printf("================Argv Pram===================\n");
for(i=0; i<argc; i++)
{
printf("argc[%d]= %s\n", i, argv[i]);
} printf("\n=============Environment Pram==============\n");
for(; *env != NULL; env++)
{
printf("%s\n", *env);
} return 0;
}

运行结果:

================Argv Pram===================

argc[0]= ./main

=============Environment Pram==============

HOSTNAME=150

SELINUX_ROLE_REQUESTED=

TERM=xterm

SHELL=/bin/bash

HISTSIZE=1000

SSH_CLIENT=192.168.0.88 12069 22

(......)

3. C程序典型的存储空间

C程序典型的存储空间例如以下:

对于X86处理器的Linux上,正文段从0x08048000单元開始,栈底则在0xc0000000之下開始。堆顶和栈底之间未使用的空间非常大。

注意:未初始化的bss段并不存放在磁盘上的程序文件里,原因是内核在程序開始执行前都将它们设置为0,须要存放在程序文件里的段仅仅有正文段和初始化数据段。

最新文章

  1. ASP.NET Core 开发-中间件(Middleware)
  2. js动态的把左边列表添加到右边,可删除。
  3. 视频直播点播nginx-rtmp开发手册中文版
  4. Android开发之百度地图--环境搭建
  5. prototype数组方法的实现
  6. OGNL表达式
  7. Java动态代理的两种实现方式:
  8. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值。
  9. Windows 7 防火墙对Virtualbox guest的影响
  10. getopts
  11. UVa 11246 - K-Multiple Free set
  12. wget 命令用法详解
  13. uva 10303
  14. ajax xmlhttp下open方法POST、GET参数的区别
  15. WebApi2官网学习记录---Media Formatters
  16. GDAL 生成shp文件
  17. Devstack single node Installation on VM
  18. Android可以换行的布局
  19. [ext4]03 磁盘布局 – Flexible group分析
  20. LeetCode 33. Search in Rotated Sorted Array(在旋转有序序列中搜索)

热门文章

  1. chpasswd - 成批更新用户的口令
  2. node.js querystring类介绍
  3. MFC中调用Windows API函数的方式
  4. pytorch记录:seq2seq例子看看这torch怎么玩的
  5. $.fn.extend的用法
  6. 笔试算法题(29):判断元素范围1到N的数组是否有重复数字 &amp; 计算整数的7倍
  7. Error opening session. Cause: java.lang.NullPointerExcept.
  8. 洛谷 1850 NOIP2016提高组 换教室
  9. 杭电 2803 The MAX(sort)
  10. 一个简单的模板了解css+div网页布局