之前虽然一直使用property_get函数,但是没有真正了解过,所以写出了这样一个bug

 

char buf[PROPERTY_VALUE_MAX] = {‘\0’};

if(property_get(“debug.property.test”, buf, “0”)) {

ALOGI(“true”);

} else {

ALOGI(“false”);

}

 

结果就是一直打印true

论文网我们看下property_get源码,O版本路径system/core/libcutils/properties.cpp

 

114 int property_get(const char *key, char *value, const char *default_value) {

115 int len = __system_property_get(key, value);

116 if (len > 0) {

117 return len;

118 }

119 if (default_value) {

120 len = strnlen(default_value, PROPERTY_VALUE_MAX - 1);

121 memcpy(value, default_value, len);

122 value[len] = ‘\0’;

123 }

124 return len;

125}

 

错误的使用了default_value,导致返回值永远大于0;

如果想判断有没有这个property,所以正确调用是

if(property_get(“debug.property.test”, buf, NULL) > 0) {

}

上一篇:如何查看端口是否开放
下一篇:LTC莱特币挖矿教程

小学阶段智力障碍儿童的...

系统开发方法

低值易耗品摊销方法

幼儿自我保护认知和方法...

论投资决策分析方法【2800字】

精细化预算管理方法茬电...

浅谈财务报表分析的内容及方法【1982字】

高光谱数据稀疏约束分类识别技术研究

水下纯方位系统目标跟踪算法研究

双子座近期桃花运,双子...

由造纸黑液制备碳酸钙过程研究

上海应复中心办公楼施工投标文件

风险管理茬呼吸内科护理...

检察机關司法會计工作的科學发展【3160字】

关于白酒的调查问卷表

论新农村建设中农村基础设施的完善

一般自我效能感量表(GSES)