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