当前位置: 首页 > news >正文

在打印前面加进程名字,基于printf函数封装

在打印前面加进程名字,基于printf函数封装

 

#include <stdio.h>

#include <stdarg.h>

#include <string.h>

#include <unistd.h>

#include <stdlib.h>

 

// ============================

// 封装的打印函数 zsprintf()

// ============================

void zsprintf(const char *fmt, ...)

{

    char proc_name[64] = {0};

    char final_fmt[1024] = {0};

 

    // 读取进程名(来自 /proc/self/comm)

    FILE *fp = fopen("/proc/self/comm", "r");

    if (fp) 

    {

        if (fgets(proc_name, sizeof(proc_name), fp)) 

        {

            // 去掉末尾的换行符

            size_t len = strlen(proc_name);

            if (len > 0 && proc_name[len - 1] == '\n')

                proc_name[len - 1] = '\0';

        }

        fclose(fp);

    } 

    else 

    {

        strcpy(proc_name, "unknown");

    }

 

    // 拼接最终格式字符串

    snprintf(final_fmt, sizeof(final_fmt), "[%s] %s", proc_name, fmt);

 

    // 可变参数处理

    va_list args;

    va_start(args, fmt);

    vprintf(final_fmt, args);

    va_end(args);

}

 

 

 

// 使用

...

zsprintf("======chn is %d function: %s line: %d\n", chn, __FUNCTION__, __LINE__);

zsprintf("======function: %s line: %d\n", __FUNCTION__, __LINE__);

 

http://www.dtcms.com/a/497408.html

相关文章:

  • 网站建设核电陕西省建设网信息截图
  • 网站备案关站一个服务器做多个网站
  • 动漫设计与制作代码那个网站seo做的好的
  • 网站目录层级建设虚拟主机子网站
  • 溧阳做网站哪家好一个人如何做跨境电商
  • 惠阳网站建设公司wordpress自动采集发布
  • 网站推广费用入什么科目太原百度做网站多少钱
  • 网站建设的主要技术指什么软件cms建站流程
  • 支付网站建设费怎么做账网站用户角色
  • 沈阳公司做网站有什么字体设计网站好
  • 软文营销的写作技巧有哪些广州专门做seo的公司
  • 【Java零基础·第10章】异常与常用类
  • 移动端网站没有icp南京手机网站建设
  • 免费wap自助建站系统创业服务网站建设方案项目书
  • 多语言 网站源码品牌网站建设网站
  • 做牛仔的时尚网站浙江1万家企业
  • seo整站优化哪家好创意作品设计方案大全
  • 企业网站模板下载562哈尔滨双城区建设局网站
  • 一个页面的网站代写平台在哪找
  • 菏泽网站建设仕佳互联邢台网站建设公司哪家好一点
  • 云建站源码神华集团两学一做网站
  • 宠物发布网站模板合肥官网seo服务
  • MQTT笔记
  • 微信公众号做电影网站深圳龙华大浪做网站公司
  • 襄阳做网站的公司企业做网站维护价格
  • 用记事本制作html网页网络优化工程师的工作内容
  • 韩国展厅设计网站哈尔滨seo优化运营
  • 南阳专业网站排名推广12306网站建设 实际
  • 浏览器渲染
  • 深圳网站建设号天津平台网站建设推荐