III. Linu系统编程_ 30进程_2 环境变量.docVIP

  • 0
  • 0
  • 约2.07千字
  • 约 5页
  • 2017-05-13 发布于贵州
  • 举报
III. Linu系统编程_ 30进程_2 环境变量

第?30?章?进程 2.?环境变量 先前讲过,exec系统调用执行新程序时会把命令行参数和环境变量表传递给main函数,它们在整个进程地址空间中的位置如下图所示。 图?30.2.?进程地址空间 和命令行参数argv类似,环境变量表也是一组字符串,如下图所示。 图?30.3.?环境变量 libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时要用extern声明。例如: 例?30.1.?打印环境变量 #include stdio.h int main(void) { extern char **environ; int i; for(i=0; environ[i]!=NULL; i++) printf(%s\n, environ[i]); return 0; } 执行结果为 $ ./a.out SSH_AGENT_PID=5717 SHELL=/bin/bash DESKTOP_STARTUP_ID= TERM=xterm ... 由于父进程在调用fork创建子进程时会把自己的环境变量表也复制给子进程,所以a.out打印的环境变量和Shell进程的环境变量是相同的。 按照惯例,环境变量字符串都是name=value这样的形式,大多数name由大写字母加下划线组成,一般把name的部分叫做环境变量,value的部分则是环境变

文档评论(0)

1亿VIP精品文档

相关文档