C操作MySQL段错误

zxywd 2010-06-07 10:33:14
大家好,请教一个C连接MySQL段错误的问题:
代码如下:
MySQLConn.c
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>
MYSQL mysql;
int main()
{
char host[30]="localhost";
char user[30]="root";
char passwd[30]="zxy2008";
char dbname[32]="mysql";
if(mysql_init(&mysql)==NULL)
{
printf("Error initialing MySQL!\n");
return 1;
}
if(mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0)==NULL)
{
printf("Error connecting MySQL!\n");
return 1;
}
else
printf("Succeed connecting MySQL!\n");
int i=close();
printf("%d\n",i);
return 0;
}

int close()
{
mysql_close(&mysql);
return 0;
}
编译:
cc -o MySQLConn $(mysql_config --cflags) MySQLConn.c $(mysql_config --libs) -g
运行:./MySQLConn
段错误
使用gdb调试:gdb MySQLConn
(gdb) run
[Thread debugging using libthread_db enabled]

Program received signal SIGPIPE, Broken pipe.
0x0012d422 in __kernel_vsyscall ()
我不使用close函数,将代码写成下面的形式,只用一个main函数,就没有任何问题。代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>
MYSQL mysql;
int main()
{
char host[30]="localhost";
char user[30]="root";
char passwd[30]="zxy2008";
char dbname[32]="mysql";
if(mysql_init(&mysql)==NULL)
{
printf("Error initialing MySQL!\n");
return 1;
}
if(mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0)==NULL)
{
printf("Error connecting MySQL!\n");
return 1;
}
else
printf("Succeed connecting MySQL!\n");
mysql_close(&mysql);
return 0;
}
编译:cc -o MySQLConn $(mysql_config --cflags) MySQLConn.c $(mysql_config --libs)
执行:./MySQLConn
运行结果:Succeed connecting MySQL!
为什么我在main函数里面关闭MySQL连接就没有问题?而将MySQL连接关闭写在main函数外用一close函数,就出问题呢?为什么会出现这种结果,如何解决这个问题呢?希望各位高手帮忙解决一下,谢谢。
...全文
103 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxywd 2010-06-07
  • 打赏
  • 举报
回复
我搞定了。真的是你们说的问题。
huanmie_09 2010-06-07
  • 打赏
  • 举报
回复
估计你调用的是库函数close,而不是你自己定义的这个函数.
huanmie_09 2010-06-07
  • 打赏
  • 举报
回复
int close()
这个函数也要在main函数前面先声明一下.
这里定义的close函数与库函数重名了.
Myth_cn 2010-06-07
  • 打赏
  • 举报
回复
将你的close()函数改个名字,比如my_close(),不要与系统调用重名

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧