В языке C сохраняйте данные строк MySQL как переменные, чтобы избежать ошибок сегментации с использованием RPi / GPIO. - PullRequest
0 голосов
/ 12 января 2019

Скорее всего, это глупый вопрос для начинающих. Для начала вот мой C-код [сегмент]:

  while ((row = mysql_fetch_row(result)))
  {
  //printf("RecordID:%s\nValue:%s\n", row[0], row[1]);
  //printf("Name:%s\n", row[0]);
  //printf("\n");
  }
  //Row[0] is now the only row I'm pulling from the SELECT statement
  // it is simply a varchar field with one row in this example, "Bob"
  // My goal is simply to be able to change the value in the dB and
  // the next time this C program is executed, the new data will appear 
  // on my little LCD. (It's a RPi/GPIO project).

  #define MYDATA row[0];
  printf("Name:%c\n",MYDATA);
  //printf("Name:$s\n",row[0];  THIS WORKED JUST FINE...FOR THE PRINTF ONLY
  //lcdPrintf(lcdhd,%s",row[0] <-- this is whats giving me the Segmentation fault error
  //lcdPrintf(lcdhd,"%s",blah); <-- so I should close the db and use a variable. 
  //blah = row[0] <-- but C has no clue what I'm asking it to do here.
  lcdPrintf(lcdhd,"Hi there") <-- that works fine (so its ONLY a variable setting issue here)
  mysql_free_result(result);
  mysql_close(con);

Очевидно, перед этим есть код. Открывает локальный дБ, захватывает данные и т. Д. Эта часть работает нормально, и фактически printf работает нормально, когда я установил его в $ s, row [0]. Проблема в том, что когда я пытаюсь использовать те же самые данные varchar (эти данные просто "Bob" просто для тестирования) в lcdPrintf, он выдает ошибку ошибки сегментации. Я предполагаю, что получаю эту ошибку ТОЛЬКО для этого, потому что это функция, направленная через мой GPIO / Raspberry Pi на крошечный ЖК-экран. И просто так никто не спрашивает об этом. Да, все RPi / GPIO тоже работает нормально. Работает отлично, пока я не переверну эту строку с a на b. Что в мире я здесь делаю не так? Я посмотрел 100 проблем с установкой переменных в C (что и побудило меня к использованию DEFINE для него, что, как я знаю, глупо. Пожалуйста, помогите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...