IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置: 首页操作系统LINUX → 关于freetds内存泄漏的问题

关于freetds内存泄漏的问题

时间:2015-06-28 00:00:00 来源:IT猫扑网 作者:网管联盟 我要评论(1)

  在使用freetds时发现进行频繁的连接,关闭数据库时,出现内存持续增长。在网上搜索了一下,国内的文章就那几篇,和我使用的方法一样。最后在官方网站上找到了原因,所以写出来,供大家参考使用,下面的代码,是从网上找的,红色部分是需要增加的。该示例只执行一次,所以隐藏了内存泄漏的问题。

  Freetds的作者说dbinit,dbexit必须执行一次,再测试过程中执行多次也没事。

  #include

  #include

  #include

  #include

  #include

  #include

  int main(void)

  {

  while(1)

  {

  char szUsername[32] = "test";

  char szPassword[32] = "test";

  char szDBName[32] = "test";

  char szServer[32] = "2.2.2.2:1433";

  //初始化db-library

  dbinit();

  //连接数据库

  LOGINREC *loginrec = dblogin();

  DBSETLUSER(loginrec, szUsername);

  DBSETLPWD(loginrec, szPassword);

  DBPROCESS *dbprocess = dbopen(loginrec, szServer);

  if(dbprocess == FAIL){

  printf("ASB>>      Conect MS SQL SERVER fail \n");

  return 0;

  }else{

  printf("ASB>>      ConnectEMS conect MS SQL SERVER success\n");

  }

  if(dbuse(dbprocess, szDBName) == FAIL){

  printf("ASB>>      Open database name fail\n");

  }else{

  printf("ASB>>      Open database name success\n");

  }

#p#副标题#e#

  //查询数据库

  dbcmd(dbprocess, "select ID,BeginTime,Description from Alarms");

  if(dbsqlexec(dbprocess) == FAIL){

  printf("ASB>>      Query Alarms table error\n");

  }

  DBINT result_code;

  char szID[1024];

  char szBeginTime[1024];

  char szDescription[1024];

  int rows = 0;

  while ((result_code = dbresults(dbprocess)) != NO_MORE_RESULTS){

  if (result_code == SUCCEED){

  dbbind(dbprocess, 1, CHARBIND, (DBINT)0, (BYTE*)szID);

  dbbind(dbprocess, 2, CHARBIND, (DBCHAR)0, (BYTE*)szBeginTime);

  dbbind(dbprocess, 3, CHARBIND, (DBCHAR)0, (BYTE*)szDescription);

  while (dbnextrow(dbprocess) != NO_MORE_ROWS){

  printf("ASB>> ID=%s\n", szID);

  printf("ASB>> szAid=%s\n", szBeginTime);

  printf("ASB>> szBeginTime=%s\n", szDescription);

  }

  }

  }

  //关闭数据库连接

  dbclose(dbprocess);

  dbloginfree(loginrec);

  dbexit();

  usleep(1000);

  }

  return 0;

  }

关键词标签:freetds,内存泄漏

相关阅读

文章评论
发表评论

热门文章 安装红帽子RedHat Linux9.0操作系统教程 安装红帽子RedHat Linux9.0操作系统教程 Tomcat9.0如何安装_Tomcat9.0环境变量配置方法 Tomcat9.0如何安装_Tomcat9.0环境变量配置方法 多种操作系统NTP客户端配置 多种操作系统NTP客户端配置 Linux操作系统修改IP Linux操作系统修改IP

相关下载

    人气排行 Linux下获取CPUID、硬盘序列号与MAC地址 dmidecode命令查看内存型号 linux tc实现ip流量限制 安装红帽子RedHat Linux9.0操作系统教程 linux下解压rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 关机、重启、注销 命令 查看linux服务器硬盘IO读写负载