本文共 1418 字,大约阅读时间需要 4 分钟。
2014年3月24日10:17:52
先文件大小保护,再写文件
1、使用VS2008创建一个带预编译头的控制台项目。
2、源文件内容:
#include "stdafx.h" #include#include #include using namespace std;//#define LOG_FILE_MAX_SIZE 10*1024*1024#define LOG_FILE_MAX_SIZE 20bool getLogFile_NewName(char * strNewFileName,char * strOldFileName){ tm * pNowTm; time_t nowTime; nowTime = time(NULL); pNowTm = localtime(&nowTime); char strTmp[40]={0}; sprintf(strTmp,"_%02d%02d%02d%2d",pNowTm->tm_mday,pNowTm->tm_hour,pNowTm->tm_min,pNowTm->tm_sec); strncpy(strNewFileName,strOldFileName,strlen(strOldFileName)-4); strcat(strNewFileName,strTmp); strcat(strNewFileName,".txt"); return true;}void protectLogFileSize(char * strFileName){ struct stat buf; if(0 != stat(strFileName, &buf)) { printf("获得文件大小失败\n"); return; } if(buf.st_size < LOG_FILE_MAX_SIZE) return; char ch; printf("准备重命名文件\n"); cin>>ch; char strNewFileName[_MAX_PATH]={0}; if(!getLogFile_NewName(strNewFileName,strFileName)) { printf("获得新文件名失败\n"); return; } if(0 !=rename(strFileName,strNewFileName)) { printf("重命名文件失败\n"); return; } return;}int main( void ) { char ch; char * strFileName = "a.txt"; printf("准备文件大小保护\n"); cin>>ch; protectLogFileSize(strFileName); FILE * pFileW = fopen(strFileName,"a+"); if(NULL == pFileW) { printf("文件打开失败\n"); cin>>ch; return 1; } else { fprintf(pFileW,"%s \n","1234567890"); fclose(pFileW); } printf("程序结束\n"); cin>>ch; return 0; }
转载地址:http://rcwci.baihongyu.com/