当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

关于freetds内存泄漏的问题

文章标题:关于freetds内存泄漏的问题。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  在使用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");

  }

[1] [2] 下一页

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有