关于freetds内存泄漏的问题_绿色软件之家

绿色软件之家:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|系统之家|纯净系统

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

关于freetds内存泄漏的问题

时间:2015/6/28来源:绿色软件之家作者:网管联盟我要评论(0)

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

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

  #include <stdio.h>

  #include <string.h>

  #include <stdlib.h>

  #include <unistd.h>

  #include <sybfront.h>

  #include <sybdb.h>

  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操作系统教程使用screen管理你的远程会话使用screen管理你的远程会话GNU/Linux安装vmwareGNU/Linux安装vmware如何登录linux vps图形界面 Linux远程桌面连如何登录linux vps图形界面 Linux远程桌面连

相关下载

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