【发布时间】:2013-06-15 13:12:36
【问题描述】:
我的问题是,以下函数中的 data 数组有一些糟糕的值(在我看来像是某个内存位置):
int
GPIO::GetValue() {
char data[1];
if (read(_valuefd, data, 1) < 0) {
perror("Error on reading value fd");
return -1;
}
printf("int GPIO::GetValue() %s\n", data);
if (strcmp(data, "1") == 0) {
return GPIO_VALUE_ON;
}
if (strcmp(data, "0") == 0) {
return GPIO_VALUE_OFF;
}
return -1;
}
printf的结果:
int GPIO::GetValue() 0cx$??ݾ??˶8@l
我不知道这是怎么回事。我在一些可以正常工作的简单程序中提取了相同的代码。还有一些其他功能 GPIO::GetDirection 可以做同样的事情并且工作正常。我猜有一些内存、指针、分配问题。
出了什么问题?
博多
【问题讨论】: