Ceci est le code que j'essaie de lancer. Il compile bien, et a bien fonctionné jusqu'à hier.Pourquoi ai-je une erreur de segmentation (core dumped)?
#include <my_global.h>
#include <mysql.h>
int main(int argc, char **argv)
{
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
int num_fields;
int i;
conn = mysql_init(NULL);
mysql_real_connect(conn, "hostname", "username", "password", "database_name", 0, NULL, 0);
mysql_query(conn, "SELECT * FROM tabletest");
result = mysql_store_result(conn);
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
for(i = 0; i < num_fields; i++)
{
printf("%s ", row[i] ? row[i] : "NULL");
}
printf("\n");
}
mysql_free_result(result);
mysql_close(conn);
}
Notez que les paramètres de mysql_real_connect()
sont ici générique de la vie privée, mais comme je l'ai dit, ça a marché hier. Lorsque je tente d'exécuter le code après avoir compilé avec succès, je reçois:
Segmentation fault (core dumped)
"Ça a marché hier" n'est pas une bonne excuse pour "Je ne vérifie pas les résultats de mes appels API mysql". Ajoutez une vérification d'erreur et affinez votre recherche à l'appel de la fonction incriminée. – paddy
est-ce la trace d'erreur complète? –
Et le backtrace? –