通讯端口的Buffer吧,用硬盘虚拟缓存可能

解决方案 »

  1.   

    以下是在BCB中的做法。
    6.9.10 操作临时文件
    在应用程序运行期间的很多情况下,需要创建一些临时文件,当这些临时文件使用完毕后
    或应用程序退出之前被删除。
    通常临时文件是放在Wi n d o w s系统设置的临时目录中。通过Windows API 函数
    G e t Te m p F i l e N a m e可以获取系统设置的临时目录,原型如下:
    DWORD GetTempPath(
    DWORD nBufferLength, // 保存临时目录名的字符串的长度
    LPTSTR lpBuffer // 保存临时目录名的字符串地址
    ) ;
    通过Windows API函数G e t Te m p F i l e N a m e可以在指定的目录中创建一个临时文件,原型如下:
    UINT GetTempFileName(
    LPCTSTR lpPathName, // 保存临时目录名的字符串地址
    LPCTSTR lpPrefixString, // 临时文件的文件名前缀
    UINT uUnique, // 创建临时文件的文件名时使用的一个数字
    LPTSTR lpTempFileName // 保存临时文件的文件名的字符串地址
    ) ;
    其中u U n i q u e如果为0,则在生成临时文件的文件名的时侯,也创建了该文
      

  2.   

    to lhj(努力加油):
       用的是odbc,就用vc6的classwizard生成的数据库访问类
    to NowCan(能量、激情、雨水、彩虹——雷雨云):
       可是用户多的时候,这些tmp文件总共会达到GB的量级别,磁盘读取也变得非常慢,有没有优化的方法?
    to pinel():
       也有这个可能,不过如何优化呢?
    to Behard(现在改用BCB了):
       我的程序不用直接操作临时文件,都是系统自己创建的我查过这儿的历史贴,也没有和这个主题相关的。没有人遇到过吗?
      

  3.   

      非常感谢帮忙,可是我的程序中没有用到new啊(vc内幕ch30中的cblockingsocket类用到了,不过这个应该没有问题的),
      而且每个接收buffer都是线程的执行函数中的局部变量。
      在系统不忙时,这些tmp文件也就几个,而且一般都会被删掉。但是系统繁忙时就出现大量增加的情况,而且一时也删不掉。