之前虽然一直使用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莱特币挖矿教程

石中盐

小学低年段儿童开展武术...

初中科学教学方法适用性调查问卷

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

系统开发方法

低值易耗品摊销方法

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

浅议体态律动在小学音乐课堂教学中的运用

浅谈岗位廉洁教育的方法与途径【3858字】

基于中频信号的家用治疗...

试析多元智能理论茬体育...

湖南长沙市生育津贴政策...

PF--1415反击式破碎机箱体设计开题报告

羟肟类萃取剂对嗜酸氧化...

摩羯座运势2022,摩羯座...

旅游英语推进邢台市旅游...

信息技术茬旅游专业教學...