zoukankan      html  css  js  c++  java
  • C++ write big files (10G+) continuously,pour data into the file and release memory manually

     1 #pragma comment(lib,"rpcrt4.lib")
     2 #include<Windows.h>
     3 #include<iostream>
     4 #include<algorithm>
     5 #include<string>
     6 #include<fstream>
     7 #include<ostream>
     8 #include<istream>
     9 #include<sstream>
    10 
    11 using namespace std; 
    12 
    13 void logFileDemo2();
    14 void getUuid(string& str); 
    15 
    16 int main()
    17 {
    18     logFileDemo2();
    19     getchar();
    20 }
    21  
    22 void logFileDemo2()
    23 {
    24     string logFileName = "logFile.txt";
    25     fstream logFile(logFileName, ios::app);
    26     unsigned long long num = 0;
    27     while (1)
    28     {
    29         if (GetAsyncKeyState(VK_ESCAPE))
    30         {
    31             cout << "Stop!";
    32             break;
    33         }
    34 
    35         stringstream ss;
    36         string str="";
    37         for (int i = 0; i < 1000000; i++)
    38         {
    39             getUuid(str);
    40             ss << ++num << "," << str << endl; 
    41             str = std::string();
    42         }
    43         logFile << ss.str() << endl;
    44         ss = std::stringstream();
    45         cout << num << endl; 
    46     }
    47 
    48     logFile.close();
    49     cout << "Finished!" << endl; 
    50 }
    51 
    52  
    53 void getUuid(string &str)
    54 {
    55     UUID newUUID;
    56     UuidCreate(&newUUID); 
    57     char* str2;
    58     UuidToStringA(&newUUID, (RPC_CSTR*)&str2);
    59     str = str2;
    60     RpcStringFreeA((RPC_CSTR*)&str2);
    61 }

    C++ has no GC concept,the programmer must release memory manually. So that this will avoid out of memory ,memory leak.

  • 相关阅读:
    Delphi数据类型转换
    js截取指定长度字符
    Internet Explorer无法打开站点,已终止操作
    关于最近做项目的一点点总结
    屏蔽右键菜单
    屏蔽回车自动提交
    自己写的一个客户端验证js
    如何播放声音文件
    如何:使用 CodeDOM 创建类
    js操作dom(4)关于xml节点属性的操作
  • 原文地址:https://www.cnblogs.com/Fred1987/p/14987657.html
Copyright © 2011-2022 走看看