getenv函数,获取环境变量的值

有的时候,想要在自己的机器当前公用的工程测试特定情况的内容,提交代码之后不想影响到其它开发人员,拉取新的代码后不影响自己的工程,那么通过配置环境变量的方式将会解决该问题,getenv()用来取得参数环境变量envvar的内容。

getenv()函数

参数envvar为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为envvar=value。getenv函数的返回值存储在一个全局二维数组里,当你再次使用getenv函数时不用担心会覆盖上次的调用结果

返回值: 执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。如果变量存在但无关联值,它将运行成功并返回一个空字符串,即该字符的第一个字节是null。

在iOS中如何使用该函数,如下图(之前有讲过,修改改配置文件默认gitignore会忽略掉,所以在本地修改是无法提交的也就是不会影响其它开发):

General preferences pane

方法使用

如果要使用,则在环境变量中定义相应的变量,并且赋值如上图中,否则不会产生影响。

1
2
3
4
5
6
7
8
9
10
11
+ (BOOL)boolValueByKey:(NSString*)key default:(BOOL)defaultValue
{
BOOL value;
char* valueChar = getenv([key UTF8String]);
if(valueChar != nil && valueChar != 0){//如果为nil,并且不为null,则读取配置文件,否则默认设置
value = [[NSString stringWithFormat:@"%s", valueChar] boolValue];
} else {
value = defaultValue;
}
return value;
}
1
2
3
if ([self boolValueByKey:@"test" default:NO]) {
NSLog(@"TESTTEST");
}