笔记
使用程序修改当前环境变量
获取环境变量,参数name为环境变量名称
char *getenv(const char *name)
增加或设置系统环境变量
putenv()
设置环境变量
int setenv(const char *name, const char *value, int overwrite); overwrite决定是否覆盖已经存在的值 */
撤销环境变量
unsetenv(const char *name)
用例
makefile:
APP_NAME = environ
APP_OBJS = environ.o
CC = gcc
INC = ./
CFLAG += -g
.PHONY : all
all : $(APP_NAME)
$(APP_NAME) : $(APP_OBJS)
$(CC) $(CFLAG) $(APP_OBJS) -o $(APP_NAME)
%.o : %.c
$(CC) -c $(CFLAG) $^ -o $@
.PHONY : clean
clean :
rm -f .o
rm -f $(APP_NAME) $(APP_OBJS)
源文件:
/* environ.c */
#include <stdlib.h>
#include <stdio.h>
extern char ** environ; /* 该变量保存系统变量的地址 */
int main()
{
char **env = environ;
while (*env)
{
printf("%s\n", *env);
env++;
}
printf("\nPATH=%s\n", getenv("PATH")); /* getenv获取某个环境变量的值 */
putenv("ENVTEST=test_putenv"); /* putenv增加或改变环境变量的值 */
printf("\nENVTEST=%s\n", getenv("ENVTEST"));
/* int setenv(const char *name, const char *value, int overwrite); overwrite决定是否覆盖已经存在的值 */
setenv("ENVTEST", "test_setenv", 1);
printf("\nENVTEST=%s\n", getenv("ENVTEST"));
unsetenv("ENVTEST");
printf("\nENVTEST=%s\n", getenv("ENVTEST"));
exit(0);
}