linux环境有关编程(2)
来源:互联网 发布:vb窗体控件 编辑:程序博客网 时间:2024/06/06 19:18
C语言通过putenv和getenv函数来访问环境变量。
#include<stdlib.h>
char *getenv(const char *name);
int putenv(const char *string);
环境是由一组格式为“名字=值”的字符串组成。
getenv函数以给定的名字搜索环境中的一个字符串,并返回与该名字相关的值。如果请求不存在,就返回NULL。
由于getenv返回的字符串存储在静态空间,所以想进一步利用它,就必须拷贝出来。
// 1 The first few lines after the declaration of main ensure that the program, environ.c, has been called correctly.#include <stdlib.h>#include <stdio.h>#include <string.h>int main(int argc, char *argv[]){ char *var, *value; if(argc == 1 || argc > 3) { fprintf(stderr,"usage: environ var [value]\n"); exit(1); }// 2 That done, we fetch the value of the variable from the environment, using getenv. var = argv[1]; value = getenv(var); if(value) printf("Variable %s has value %s\n", var, value); else printf("Variable %s has no value\n", var);// 3 Next, we check whether the program was called with a second argument. If it was, we set the variable to the value of that argument by constructing a string of the form name=value and then calling putenv. if(argc == 3) { char *string; value = argv[2]; string = malloc(strlen(var)+strlen(value)+2); if(!string) { fprintf(stderr,"out of memory\n"); exit(1); } strcpy(string,var); strcat(string,"="); strcat(string,value); printf("Calling putenv with: %s\n",string); if(putenv(string) != 0) { fprintf(stderr,"putenv failed\n"); free(string); exit(1); }// 4 Finally, we discover the new value of the variable by calling getenv once again. value = getenv(var); if(value) printf("New value of %s is %s\n", var, value); else printf("New value of %s is null??\n", var); } exit(0);}
./environ HOME
Variable HOME has value /home/zq
./environ qq
Varliable qq has no value
./environ zq qq
Varliable zq has no value
Calling putenv with: zq=qq
New value of zq is qq
./environ zq
Varliable zq has no value
- linux环境有关编程(2)
- linux环境有关编程(1)
- linux环境有关编程(3)
- Linux环境编程2
- 有关LINUX下的病毒编程
- 有关linux(2)
- 十四Linux编程环境
- linux C++编程环境
- linux C++编程环境
- linux C++编程环境
- Linux编程环境
- LINUX环境编程笔记
- Linux编程环境搭建
- Linux环境编程--进程
- Linux环境编程--多线程
- Linux环境编程--多线程
- Linux环境编程
- linux环境编程---note1
- 使用UIActivityIndicatorView
- android 开发中的Log
- Vim正则表达式整理
- MFC 8: I'm Not Dead Yet
- 32位windows下各数据类型在内存中占用的字节数
- linux环境有关编程(2)
- Android APK应用安装原理(2)-查找APK并自动安装
- GoogleAndroid常用的Android常量
- intent 组件
- js 不能提交或重置表单,提示reset或submit方法不存在
- 第七章:时间、延迟及延缓操作
- 如何实现windows与虚拟机linux下的文件共享
- Java实现CSV读写操作源代码
- local ,