|
- void LogInfo::SaveFile(bool bPrompt)
- {
- char caFileCurrent[512];
- sprintf(caFileCurrent, "%s_%s%d.log", g_caFileName, sExeName_.c_str(), 0);
- struct _stat st;
- if(_stat(caFileCurrent, &st) >= 0 && st.st_size > (g_iLogSize * 1024 * 1024))
- {
- char caFileNew[512], caFileOld[512];
- sprintf(caFileOld, "%s_%s%d.log", g_caFileName, sExeName_.c_str(), g_iLogNum);
- if(_stat(caFileOld, &st) >= 0)
- remove(caFileOld);
- for(int k = g_iLogNum; k > 0; k--)
- {
- sprintf(caFileOld, "%s_%s%d.log", g_caFileName, sExeName_.c_str(), k);
- sprintf(caFileNew, "%s_%s%d.log", g_caFileName, sExeName_.c_str(), k - 1);
- if(_stat(caFileNew, &st) >= 0)
- rename(caFileNew, caFileOld);
- }
- }
-
- [color=Blue]ofstream of(caFileCurrent, ios::out | ios::app);[/color]
-
- [color=Red] if(!of)[/color]
- {
- AfxMessageBox("不能打开文件");
- }
- else
- {
- of << Message();
- AfxMessageBox("保存成功");
- }
- }
复制代码 在上面的这段代码中,标红的if判断怎么控制执行分歧的全面覆盖。是不是说我给caFileCurrent初期值是本机存在的路径,of的返回值就为非空,如果给一个本机不存在的路径就返回为空值?如果是这样的话,caFileCurrent是一个局部变量,我怎么能直接给局部变量赋值(测试软件中可以给全局变量,被调函数的返回值进行直接赋值,全局变量不可以)进行判断?如果不是的话又该怎么控制?我用的是C++test软件。先谢谢大家了。 |
|