0
所以我有在C此功能(下面的代碼),從我的數據庫檢查數據。如果這個數據等於255,我想在我的一個GPIO引腳(12)上點亮樹莓派上的LED。分段故障
我第一次嘗試的代碼而不億立方米的功能,它的工作一切正常。現在我已經包含了bcm2835,並且改變了我的Makefile(編譯工作正常),我得到了這個「Segmentation fault」錯誤。
我知道這意味着我的程序正在使用它不應該使用的內存,但我不知道在bcm行中是什麼導致了這種情況。
下面是函數:
void check_pasid(char k[]){
MYSQL *conn;
MYSQL_RES * result;
MYSQL_ROW row;
char *server = "server";
char *user = "myusername";
char *password = "mypassword";
char *database = "dbname";
char query1[100];
// Make the connection to the Mysql-database.
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
sprintf(query1,"SELECT COUNT(*) FROM passcan WHERE UserID = \"%s\";",k);
int result1 = mysql_query(conn, query1);
result = mysql_store_result(conn);
row = mysql_fetch_row(result);
int compare = 1;
compare = strcmp(row[0], "1");
if(compare == 0){
printf("Led is turning on");
// Turn it on
bcm2835_gpio_write(PIN12, HIGH);
delay(5000);
// Turn it off
bcm2835_gpio_write(PIN12, LOW);
}
else{
printf("Led is not turning on");
}
}
我希望有人給我一些信息。
我希望在'k'字符串少於約50個字符,或者你將有一個緩衝區溢出。 –
@JoachimPileborg它是 – moffelnijdam