程序中获取Shell进程环境变量值
2011-08-03 21:34
405 查看
程序中获取Shell进程环境变量值 | |
来源: ChinaUnix博客 日期: 2007.09.19 09:20 (共有0条评论) 我要评论 | |
1. get all 进程的环境是一个以NULL字符结尾的字符串之集合。如: name=something Linux系统提供了environ指针来访问其变量内容。 如下程序showenv.c演示了通过environ指针变量访问环境变量: extern char** environ; main() { char** env=environ; while(*env) { printf("%s\n",*env++); } return; } 2. add 为进程指定新的环境,需:execle()和execve() [in ] 如下程序addenv.c 演示了把新的环境传给上面的showenv.c: #include main() { char *argv[]={"showenv.x",NULL}, *envp[]={"nick=home","home=nick",NULL}; execve("../exe/showenv.x",argv,envp); perror("exeve failed"); return; } 结果: nick=home home=nick 其实,Linux系统库stdlib.h提供了putenv(),它完成与addenv同样的工作。方法为:putenv("newvariable=value");如成功返回0。它只改变调用进程的环境变量,父进程不变。 3 get one or find someone findenv()根据给的name扫描环境内容,找出“name=something”这种形式的字符串。 /*找不到则返回NULL*/ extern char** environ; char* findenv(char* name) { int len; char *p; for(p=environ; *p; p++) { if( (len=pcmp(name,*p))>=0 && *(*(p+1))=='=' ) return *(p+1+1); } return NULL; } int pcmp(char* s1,char* s2) { int i=0; while(*s1) { i++; if(*s1++!=*s2++) return -1; } return i; |
相关文章推荐
- shell脚本--获取程序进程相关性能参数
- shell 编程8 获取 java程序的pid 杀死pid 对应的进程
- linux c程序中获取shell脚本输出
- C# API 根据进程名获取程序句柄
- 使用Shell脚本查找程序对应的进程ID,并杀死进程
- /bin/sh^M: bad interpreter: No such file or directory AND 使用Shell脚本查找程序对应的进程ID,并杀死进程
- popen——C程序中获取Shell命令的输出
- linux C 程序中获取shell脚本输出
- linux c程序中获取shell脚本输出的实现方法
- linux C程序中获取shell脚本输出
- DELPHI 跨进程获取其他程序的DBGrid内容
- Openwrt下获取进程pid的实用shell
- shell获取tomcat进程号实现必杀
- WINCE 获取正在运行的程序的进程列表名
- Android中TASK和PROCESS的区别,获取最近运行的程序和正在运行的进程
- linux c程序中获取shell脚本输出
- Shell脚本中获取进程ID的方法
- shell脚本实现关闭指定程序名的进程
- delphi根据进程PID获取程序所在路径的函数
- linux C程序中获取shell脚本输出