循环 mysql_real_connect 或什么 [英] looping mysql_real_connect or what
本文介绍了循环 mysql_real_connect 或什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
考虑以下 c 代码:
int main (int argc, char *argv[]) {
MYSQL *sql_handle;
fprintf(stdout,"initializing handle..\n");
sql_handle = mysql_init(sql_handle);
fprintf(stdout,"connecting to database..\n");
mysql_real_connect(sql_handle,NULL,NULL,
NULL,"test",0,NULL,0);
fprintf(stdout,"connection established\n");
mysql_close(sql_handle);
}
这会产生以下输出
...
initializing handle..
connecting to database..
initializing handle..
connecting to database..
initializing handle..
connecting to database..
initializing handle..
connecting to database..
connection established
Error: Can't create UNIX socket (24)
real_connect 函数似乎有问题.守护进程肯定正在运行.很久以前我习惯了 c 所以这可能是一个愚蠢的问题.
the real_connect function seems to have problems. the daemon is running for sure. it's long time ago since i was used to c so this might be a stupid question.
[更新]这是完整的代码
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 #if defined __WIN32__ || _MSC_VER
5 #include "my_global.h"
6 #include "mysql.h"
7 #else
8 #include <mysql.h>
9 #endif
10
11 /* prototypes */
12 void connect(void);
13
14 /* sql handle */
15 MYSQL *sql_handle;
16
17 int main (int argc, char *argv[]) {
18 fprintf(stdout,"main..\n");
19 connect();
20 return EXIT_SUCCESS;
21
22 }
23 void connect(void){
24 fprintf(stdout,"initializing database handle..\n");
25 sql_handle = mysql_init(NULL);
26
27 fprintf(stdout,"connecting to database..\n");
28 mysql_real_connect(sql_handle,NULL,NULL,NULL,NULL,0,NULL,0);
29
30 fprintf(stdout,"closing connection..\n");
31 mysql_close(sql_handle);
32 }
此代码产生该输出:
...
connecting to database..
initializing database handle..
connecting to database..
initializing database handle..
connecting to database..
closing connection..
[1] 12914 segmentation fault (core dumped) ./db
将连接函数的主体复制到 main 中并删除连接函数可解决此问题.但这不是解决方案.
copying the body of the connect-function into main and removing the connect-functions resolves the issue. but this is not a solution.
推荐答案
重命名方法
void connect(void)
到
void connect_to_database(void)
为我解决了这个问题
这篇关于循环 mysql_real_connect 或什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文