进程环境

main函数

int main(int argc, char *argv[]);

进程终止

正常终止

  1. 从main返回

  2. 调用exit

  3. 调用_exit或_Exit

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

  5. 从最后一个线程调用pthread_exit

异常终止

  1. 调用abort

  2. 接到一个信号

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

exit(main(argc, argv));
  • 退出函数
#include 
void exit(int status); //先执行清理处理,然后返回内核
void _Exit(int status);//立即进入内核
#include  
void _exit(int status);//立即进入内核

main函数返回一个整型值和用该值调用exit是等价的,exit(0)等价于return(0)

  • 函数atexit
#include 
int atexit(void (*func)(void));

进程可以登记多至32个函数,这些函数由exit自动调用,称为终止处理程序,并调用atexit函数来登记这些函数。

命令行参数

argc argv

环境表

extern char **environ;

环境指针

C程序的存储空间布局

  • 正文段

  • 初始化数据段

  • 未初始化数据段(bss段)

共享库

存储空间分配

#include 
void *malloc(size_t);
void *calloc(size_t);
void *realloc(size_t);
void free(void *ptr);

环境变量

#include 
char *getenv(const char *name);

函数setjmp和longjmp

#include 
int setjmp(jmp_buf env);
void longjmp(jmp_buf env, int val);

函数getrlimit和setrlimit

#include 
int getrlimit(int resurce, struct rlimit *rlptr);
int setrlimit(int resurce, const struct rlimit *rlptr);
posted @ 2019-07-08 16:55  LOXO  阅读(129)  评论(0编辑  收藏  举报