我的问题是以下函数中的数据数组有一些糟糕的值(在我看来像一些内存位置):
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也可以正常工作。我想有一些内存,指针,分配问题。
出了什么问题?
博多