Segmentation fault 郁闷
以下程序是用mysql c api计算t_flow_data表项的记录数:
编译命令行如下:
gcc -I /usr/local/mysql/include/mysql -c connect_database.c
gcc -L /usr/local/mysql/lib/mysql/ -lmysqlclient -lm -o connect_database conne
ct_database.o
执行时,结果正确选择出来了,但是出现Segmentation fault:
Connect Succ
The result is 4999999
Segmentation fault
到底是怎么回事啊?
#include <stdlib.h>
#include <stdio.h>
#include "/usr/local/mysql/include/mysql/mysql.h"
#include "configuration.inc.h"
/*
* 函数介绍:该函数负责数据库的连接
* 输入参数:
* 输出参数:
* 返回值 :成功时返回连接标识,否则返回NULL
* 全局变量:
* 调用模块:
* 抛出异常:错误时输出错误信息
*/
int Connect_DataBase(MYSQL *db_connect)
{
mysql_init(db_connect);
if (!mysql_real_connect(db_connect , HOST , DBUSER , DBPASSWD , DBNAME , 0 ,
NULL ,0))
{
fprintf(stderr , "Failed to Connect DataBase , Error:%s\n" , mysql_error(db_
connect));
return 0;
}
else
return 1;
}
int main()
{
MYSQL *mysql;
MYSQL_RES *mysql_store;
MYSQL_ROW row;
if (Connect_DataBase(mysql))/* Connect DataBase*/
{
printf("Connect Succ\n");
}
else
exit(-1);
mysql_query(mysql , "select count(*) from t_flow_data");
mysql_store = mysql_store_result(mysql);
row = mysql_fetch_row(mysql_store);
printf("The result is %s\n" , row[0]);
mysql_free_result(mysql_store);
mysql_close(mysql);
return 1;
}
编译命令行如下:
gcc -I /usr/local/mysql/include/mysql -c connect_database.c
gcc -L /usr/local/mysql/lib/mysql/ -lmysqlclient -lm -o connect_database conne
ct_database.o
执行时,结果正确选择出来了,但是出现Segmentation fault:
Connect Succ
The result is 4999999
Segmentation fault
到底是怎么回事啊?
#include <stdlib.h>
#include <stdio.h>
#include "/usr/local/mysql/include/mysql/mysql.h"
#include "configuration.inc.h"
/*
* 函数介绍:该函数负责数据库的连接
* 输入参数:
* 输出参数:
* 返回值 :成功时返回连接标识,否则返回NULL
* 全局变量:
* 调用模块:
* 抛出异常:错误时输出错误信息
*/
int Connect_DataBase(MYSQL *db_connect)
{
mysql_init(db_connect);
if (!mysql_real_connect(db_connect , HOST , DBUSER , DBPASSWD , DBNAME , 0 ,
NULL ,0))
{
fprintf(stderr , "Failed to Connect DataBase , Error:%s\n" , mysql_error(db_
connect));
return 0;
}
else
return 1;
}
int main()
{
MYSQL *mysql;
MYSQL_RES *mysql_store;
MYSQL_ROW row;
if (Connect_DataBase(mysql))/* Connect DataBase*/
{
printf("Connect Succ\n");
}
else
exit(-1);
mysql_query(mysql , "select count(*) from t_flow_data");
mysql_store = mysql_store_result(mysql);
row = mysql_fetch_row(mysql_store);
printf("The result is %s\n" , row[0]);
mysql_free_result(mysql_store);
mysql_close(mysql);
return 1;
}
...全文
相关推荐
Segmentation_fault_in_linux.pdf
#### 二、Segmentation Fault的产生机理Segmentation fault在Linux中的产生,主要是由于以下几个方面:1.
HLS进行c simulation没有hls-opencv.h的文件,出现Segmentation fault
对于“Segmentation fault”,则需要通过调试工具(如GDB)定位出错的具体行,分析并修复导致错误的代码片段。
欧拉系统(openEuler-22.03)安装深信服EasyConnect软件提示segmentation fault解决方案
本文将深入探讨一个特定的问题——如何解决在欧拉系统(openEuler-22.03)上安装深信服EasyConnect软件时出现的“segmentation fault”错误,并提供相应的解决方案。
Linux环境下段错误(Segmentation fault)的产生原因及调试方法
在Linux环境下,编程时经常会遇到一个让开发者头疼的问题——段错误(Segmentation fault)。这个问题通常是由于程序尝试访问其不应该访问或者无法访问的内存区域而触发的。
Segmentation Fault(解决方案).md
Segmentation Fault(解决方案).md


系统维护与使用区
