Linux 进程环境

进程相关知识

第一,Linux进程的运行,是通过调用系统函数exec来执行程序的main函数,作为入口,来启动程序的。

 

第二,进程的终止,

正常终止:

a) 从main返回,

b)调用exit 函数,会调用相关清理函数

c) 调用_exit函数,直接终止,不做清理操作

异常终止:

d) 调用abort

e) kill sigterm 等,有一个信号终止,属于被动终止。

ansi c 规定,调用函数int atexit(void func(void)); 来登记最多32个退出相关的清理函数。

 

第三、环境表

每个程序(进程)都会接受一个环境表,全局变量environ指针包含了指向环境表的地址。

posix 规定可以通过getenv 和setenv 函数来获取和设置环境变量,以key:value的形式操作。

 

第四:进程的内存布局

由以下五部分构成:

正文段:即程序段,是由cpu执行的机器指令构成。可共享,但不可以随意更改,是只读的。

初始化数据段:即数据段,包含了需赋值的变量。如全局变量等。

非初始化数据段:即BSS段,程序开始前,内核将此段设为0。一般局部变量,不经初始化的,放在此处。

栈:自动变量以及函数调用是各种参数和返回地址等信息,保存在此。

堆:一般是动态申请分配的内存,

 

第五,共享库

程序通过动态连接方法与共享库函数相连接。

 

第六,限制资源

每个进程都有一组资源限制,通过getrlimit, setrlimit 查询和修改。头文件是 <sys/resource.h>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值