如果C程序崩溃了,MySQL连接会自动关闭吗?

时间:2019-07-11 03:30:32

标签: mysql c

如果我的C程序崩溃,MySQL连接会自动关闭吗?

不幸的是,我对C不太熟悉,并且正在调试别人编写的一些代码。我正在尝试诊断导致MySQL服务器连接超出极限的问题。正在运行许多程序,这可能是由任何程序引起的,但我相信我已将其范围缩小到特定程序。

我有理由相信是某种原因导致程序崩溃,然后由supervisor重新启动。由于主管在崩溃后尝试重新启动该程序,因此连续可能发生了20次以上。很好,我自己可能会发现问题。

现在我似乎找不到有关C程序在死后是否清理MySQL连接的任何信息。

我们通过标准的连接过程启动程序。

MYSQL *con = mysql_init(NULL);
if (con == NULL)
    {
    fprintf(stderr, "%s\n", mysql_error(con));
    exit(1);
    }

if (mysql_real_connect(con, "localhost", "username", "password", "database", 0, NULL, 0) == NULL)
    {
    finish_with_error(con);
    }

为了记录,finish_with_error()

void finish_with_error(MYSQL *con)
    {
    fprintf(stderr, "%s\n", mysql_error(con));
    mysql_close(con);
    exit(1);
    }

无论如何,脚本通常会按预期运行,并以

结尾

mysql_close(con);

所以我的问题是,如果程序在打开连接和关闭连接之间的某个时刻崩溃,连接会自动关闭还是无限期保持打开状态?

0 个答案:

没有答案