C/C++知识点之c++相关函数实现
小标 2019-02-19 来源 : 阅读 1089 评论 0

摘要:本文主要向大家介绍了 C/C++知识点之c++相关函数实现,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了 C/C++知识点之c++相关函数实现,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

C/C++知识点之c++相关函数实现

日志打印


namespace fun{
        extern std::string GetProgramDir();
        extern std::string GetProgramName();
        extern int write_log(const char *format, ...);
}


namespace fun{
        int write_log(const char *format, ...)
        {
            std::string log_name = GetProgramDir() + '\\' + GetProgramName() + ".log";
            FILE* pFile = fopen(log_name.c_str(), "a");
            va_list arg;
            int done;

            va_start(arg, format);

            time_t time_log = time(NULL);//#include <time.h>
            struct tm* tm_log = localtime(&time_log);
            fprintf(pFile, "%04d-%02d-%02d %02d:%02d:%02d ", tm_log->tm_year + 1900, tm_log->tm_mon + 1, tm_log->tm_mday, tm_log->tm_hour, tm_log->tm_min, tm_log->tm_sec);

            done = vfprintf(pFile, format, arg);
            va_end(arg);
            fflush(pFile);
            fclose(pFile);
            return done;
        }
}
std::string GetProgramDir()
{
    std::string program_file_name;
    char the_filename[MAX_PATH];  //#include <Windows.h>
    DWORD length = ::GetModuleFileName(nullptr, the_filename, MAX_PATH);
    if (length > 0 && length < MAX_PATH)
    {
        program_file_name = the_filename;
    }
    int pos = program_file_name.find_last_of('\\', program_file_name.length());
    return program_file_name.substr(0, pos);  // Return the directory without the file name
}
std::string GetProgramName()
{
    std::string program_file_name;
    char the_filename[MAX_PATH];
    DWORD length = ::GetModuleFileName(nullptr, the_filename, MAX_PATH);
    if (length > 0 && length < MAX_PATH)
    {
        program_file_name = the_filename;
    }
    int pos1 = program_file_name.find_last_of('\\', program_file_name.length());
    int pos2 = program_file_name.find_last_of('.', program_file_name.length());
    int len = pos2 - pos1 - 1;
    return program_file_name.substr(pos1 + 1, len);  // Return the directory without the file name
}


用法:


extern int fun::write_log(const char *format, ...);
fun::write_log("驱动注入失败 \n");

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程