C/C++ Linux 的C开发中的环境变量
2015-12-13 14:21
651 查看
1.命令行参数
[root@localhost LearnLinux]# vim testarg.c编辑内容如下
#include<stdio.h> int main(int argc, char* argv[]) { int i=0; for(; i<argc; i++) { printf("the %d mes is %s\n",i,argv[i]); } }
[root@localhost LearnLinux]# gcc testarg.c -o testarg [root@localhost LearnLinux]# ./testarg the 0 mes is ./testarg [root@localhost LearnLinux]# ./testarg 1 2 3 uu the 0 mes is ./testarg the 1 mes is 1 the 2 mes is 2 the 3 mes is 3 the 4 mes is uu
命令行参数的第一个是程序的路径名,要想找到程序名,可以通过路径名,寻找路径中的最后一个"/".
2.环境变量
每个程序都有一个环境变量表,是一个指针数组。可以打印所有的环境变量
#include<stdio.h> extern ** environ; int main() { int i; for(i=0; environ[i] != NULL; i++) { printf("envir : %s\n",environ[i]); } }
[root@localhost LearnLinux]# gcc env.c -o env [root@localhost LearnLinux]# ./env envir : HOSTNAME=localhost.localdomain envir : SELINUX_ROLE_REQUESTED= envir : TERM=xterm envir : SHELL=/bin/bash envir : HISTSIZE=1000 envir : SSH_CLIENT=219.223.194.207 7150 22 envir : SELINUX_USE_CURRENT_RANGE= envir : QTDIR=/usr/lib/qt-3.3 envir : OLDPWD=/root envir : QTINC=/usr/lib/qt-3.3/include
使用getenv可以得到指定的环境变量
printf("%s\n",getenv("HOME"));
putenv函数将一个形如name=value的字符串放入环境表里。成功返回0,失败返回-1.
if(putenv("HOME=/home/admin") == 0)
......
也可以使用setenv对环境变量赋值,第一个参数是环境变量名称,第二个参数是环境变量新值,第三个参数决定是否覆盖原值。0,则不修改,非0则修改。返回值类似putenv。
if(setenv("HOME", "/home/admin", 1) == 0)
......
unsetenv参数表示要删除的环境变量的名称,即使不存在也不会出错。返回值类似putenv。
if(unsetenv("HOME") == 0)
......
clearenv函数将清空所有环境表中的变量。返回值类似putenv。
if(clearenv() == 0)
......
以上环境变量的操作只能影响到操作进程和子进程,对其父进程没有影响。
相关文章推荐
- Linux 下C语言 指针学习 二 (数组与指针)
- linux(fedora) 下dvwa 建筑环境
- LINUX 查看硬件配置命令
- linux shell字符串内置的常用操作(获取长度、查找、替换)
- Linux Command
- 用户、权限管理
- linux开放8082和3306端口
- linux环境变量配置
- centos7安装mysql及远程访问设置(yum)
- linux下spf13-vim安装
- linux sort 命令详解
- linux Cent OS6.5 安装nodeJS(分分钟搞定)
- Linux文件系统实现
- Linux 系统编程
- linux的自动化操作相关使用方法汇总(转)
- 用VMware克隆CentOS 6.7后原来的eth0网卡不能使用
- linux mount
- Hadoop2.7.1环境搭建(基于linux)
- linux 笔记本禁用触摸板
- Linux学习笔记(二十五、VI编辑器的操作模式)