进程环境
原创
©著作权归作者所有:来自51CTO博客作者ghong45的原创作品,请联系作者获取转载授权,否则将追究法律责任
1本章中将学习:当执行程序时,其main函数是如何被调用的,命令行参数是如何传送给执行程序的;典型的存储器布局是什么样式;如何分配另外的存储窨;进程如何使用环境变量;各种不同的进程终止方式等.
2main原型:
int main(int argc,char*argv[]);
其中,是命令行参数的数目,是指向参数的各个指针所构成的数组
3进程终止
有8种方式使进程终止,其中5种为正常终止,它们是:
1从main返回
2调用exit
3调用_exit或_Exit
4最后一个线程从其启动全程返回
5最后一个线程调用pthread_exit
异常终止有3种方式
6调用abort
7接到一个信号并终止
8最后一个线程对取消请求做出响应
4命令行参数
#include "apue.h"
int main(int argc,char*argv[])
{
int i;
for(i=0;i<argc;i++)
printf("argv[%d],%s\n",i,argv[i]);
exit(0);
}
5环境表
6C程序的存储空间分布
正文段,初始化数据段,非初始化数据段,栈,堆
size(1)命令报告正文段,数据段和bss段的长度(单位:字节)
7共享库
阻止使用共享库
cc -static hello.c
8存储器分配
(1)malloc 分配指定字节数的存储区
(2)calloc 为指定数量具指定长度的对象分配存储空间
(3)realloc 更改以前分配区的长度
9环境变量
环境字符串的形式通常如下:
name=value
ISO C 取环境变量值:
#include <stdlib.h>
char *getenv(const char *name);
#include<stdlib.h>
int putenv(char *str);
取形式为name=value的字符串,将其放到环境表中,如果name已经存在,则先删除其 原来的定义
int setenv(const char *name,const char*value,int rewrite);
将name设置为value,如果在环境中name已经存在,那么若rewrite非0,则首先删除其现在的定义,若rewrite为0,则不删除其现有定义(name不设置为新的value,而且也不出错).
上一篇:进程的一生
下一篇:linux驱动学习笔记(1)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
进程环境列表
进程环境参数
进程 环境变量 ubuntu 父进程 -
10-进程环境
进程环境和退出
linux网络编程 it -
进程的环境变量
进程的环境变量进程的环境快不过是进程地址空间中分配的一个内存快,环境快的格式如下:VarName1=VarValue1\0VarName2=VarValue2\0VarName3=VarValue3\0...VarN
session windows system api null