欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > linux下C語言實現(xiàn)寫日志功能

linux下C語言實現(xiàn)寫日志功能

熱門標簽:外呼系統(tǒng)坐席費計入會計哪個科目 如何分析地圖標注 大連400電話如何申請 新余高德地圖標注怎么修改 電銷機器人價值 高德地圖標注好做嗎 撫順地圖標注 達亞電銷機器人官網(wǎng) 電銷機器人怎么接線路

先上程序,該程序經(jīng)過測試能夠很好的實現(xiàn)寫日志要求

/*************************************************************************
  > File Name: log.c
  > Author: 
 ************************************************************************/
#include <stdio.h>
#include <sys/types.h> 
#include <unistd.h> 
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <stdarg.h>
#include <time.h>
#include <pthread.h>

int safe_asprintf(char **strp, const char *fmt, ...);
int safe_vasprintf(char **strp, const char *fmt, va_list ap);
void plog(const char *format, ...) ;
void pinfo(const char *format, ...) ;

#define DEBUG

#ifdef DEBUG
void plog(const char *format, ...);
void pinfo(const char *format, ...);
#define debug(fmt, args...) plog(fmt, ##args) 
#else
#define debug(fmt, args...) do{}while(0)
#endif

static pthread_mutex_t fileMutex = PTHREAD_MUTEX_INITIALIZER;

int main(int argc, char *argv)
{
  return 0;
}

/*
 * safe_asprintf();
 */
int safe_asprintf(char **strp, const char *fmt, ...) 
{
  va_list ap;
  int retval;

  va_start(ap, fmt);
  retval = safe_vasprintf(strp, fmt, ap);
  va_end(ap);

  return retval;
}

/*
 * safe_vasprintf();
 */
int safe_vasprintf(char **strp, const char *fmt, va_list ap) 
{
  int retval;

  retval = vasprintf(strp, fmt, ap);
  if (retval == -1) 
  {
    printf("Failed to vasprintf: %s. Bailing out\n", strerror(errno));
    return 1;
  }
  return retval;
}

/*
 * plog();
 */
void plog(const char *format, ...) 
{

  pthread_mutex_lock(&fileMutex);

  FILE *fp = NULL;
  va_list vlist;
  char *fmt = NULL;

  // Open debug info output file.
  if (!(fp = fopen("log.txt", "a+"))) {
    pthread_mutex_unlock(&fileMutex);
    return;
  }

  va_start(vlist, format);
  safe_vasprintf(&fmt, format, vlist);
  va_end(vlist);
  if (!fmt) {
    pthread_mutex_unlock(&fileMutex);
    return;
  }

  time_t timep;
  struct tm *ptm = NULL;
  time(&timep);
  ptm = localtime(&timep);
  fprintf(fp, "[%04d-%02d-%02d-%02d-%02d-%02d] %s", 
      ptm->tm_year + 1900, 
      ptm->tm_mon + 1,
      ptm->tm_mday, 
      ptm->tm_hour, 
      ptm->tm_min, 
      ptm->tm_sec, 
      fmt);

  free(fmt);
  fsync(fileno(fp));
  fclose(fp);

  pthread_mutex_unlock(&fileMutex);
}

/*
 * pinfo();
 */
void pinfo(const char *format, ...) 
{
  pthread_mutex_lock(&fileMutex);

  FILE *fp = NULL;
  va_list vlist;
  char *fmt = NULL;

  // Open debug info output file.
  if (!(fp = fopen("log.txt", "a+"))) {
    pthread_mutex_unlock(&fileMutex);
    return;
  }

  va_start(vlist, format);
  safe_vasprintf(&fmt, format, vlist);
  va_end(vlist);
  if (!fmt) {
    pthread_mutex_unlock(&fileMutex);
    return;
  }

  fprintf(fp, "%s", fmt);

  free(fmt);
  fsync(fileno(fp));
  fclose(fp);

  pthread_mutex_unlock(&fileMutex);
}

程序?qū)崿F(xiàn)的日志格式為:

時間 + 空格 + 具體實現(xiàn)(自己的調(diào)試內(nèi)容)

本段程序值得學習的地方:

  1. va_list 結(jié)構體的使用
  2. linux 的格式化輸出字符串
  3. 文件操作過程中pthread_mutex鎖的使用,以及他的優(yōu)點
  4. linux DEBUG 的應用,方便調(diào)試

linux如何查看日志:

使用tail 命令可以實現(xiàn)日志的查詢,以及其他功能,不了解的話,自行查資料解決。

對上面應用不明白的請自行查資料解決。

標簽:湖南 遼源 楊凌 衡水 黃石 新鄉(xiāng) 海東 南通

巨人網(wǎng)絡通訊聲明:本文標題《linux下C語言實現(xiàn)寫日志功能》,本文關鍵詞  linux,下,語言,實現(xiàn),寫,日志,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《linux下C語言實現(xiàn)寫日志功能》相關的同類信息!
  • 本頁收集關于linux下C語言實現(xiàn)寫日志功能的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲色图欧美色| 国产视频一区二区在线| 亚洲日穴在线视频| 丁香网亚洲国际| 三级黄色在线观看| 国产精品污网站| 国产**成人网毛片九色| 羞羞在线观看视频| 中文字幕欧美激情一区| 国产91综合一区在线观看| 99热6这里只有精品| 欧美极品aⅴ影院| 国产精品系列在线播放| 男人天堂资源网| 国产精品人人做人人爽人人添| 国产一区二区免费在线| 日日操免费视频| 国产精品色婷婷久久58| 成人激情av网| 日本二三区不卡| 悠悠色在线精品| 免费观看污网站| 欧美一级片免费看| 久久成人免费网| 自拍偷拍你懂的| 国产精品久久久爽爽爽麻豆色哟哟| 国产福利电影一区二区三区| 波多野结衣亚洲一区二区| 自拍偷拍国产精品| 91精产国品一二三| 91精品国产综合久久香蕉麻豆 | 亚洲高清一区二区三区| 91九色蝌蚪porny| 日韩美女一区二区三区四区| 久久99久久精品欧美| 国产午夜精品福利视频| 国产精品久久久久久久久免费桃花| eeuss国产一区二区三区| 欧美午夜片在线观看| 亚洲国产精品自拍| 久久久久久国产精品无码| 国产农村妇女毛片精品久久麻豆| 成人av免费在线| 欧美日韩国产影片| 美女脱光内衣内裤视频久久网站| 又色又爽的视频| 亚洲猫色日本管| 网站免费在线观看| 国产农村妇女精品| 亚洲美女高潮久久久| 欧美www视频| 国产99久久久国产精品免费看 | 亚洲综合无码一区二区| 先锋资源av在线| 久久精品亚洲精品国产欧美| 成人三级在线视频| 在线播放欧美女士性生活| 激情图片小说一区| 色婷婷久久久久swag精品| 视频一区欧美精品| 免费看特级毛片| 亚洲成人av在线电影| 亚洲一二三精品| 伊人色综合久久天天人手人婷| 亚洲黄色在线网站| ...av二区三区久久精品| 你懂得在线视频| 中文字幕亚洲区| 极品粉嫩小仙女高潮喷水久久| 日本一区二区动态图| 黄色性视频网站| 中文字幕免费观看一区| 久久人妻少妇嫩草av无码专区| 欧美—级在线免费片| 亚洲av网址在线| 亚洲丝袜美腿综合| 88久久精品无码一区二区毛片| 亚洲精品中文在线| 妖精视频在线观看免费| 五月婷婷另类国产| 色伊人久久综合中文字幕| 捆绑紧缚一区二区三区视频| 在线观看免费视频综合| 国内成人精品2018免费看| 欧美精品视频www在线观看| 国产99久久精品| 精品国产凹凸成av人导航| 三大队在线观看| 国产精品美女久久久久久久久久久 | 久久久久久毛片| 国产午夜在线一区二区三区| 综合网在线视频| 亚洲女人毛茸茸高潮| 日本在线不卡视频| 欧美少妇bbb| caoporen国产精品视频| 国产亚洲一二三区| 无码熟妇人妻av| 香蕉加勒比综合久久| www欧美com| 韩国v欧美v日本v亚洲v| 日韩西西人体444www| 美女流白浆视频| 亚洲男女一区二区三区| 五月综合色婷婷| 国产美女视频一区| 精品国产一区二区三区四区四| 秘密基地免费观看完整版中文 | 久久久精品成人| 日本美女一区二区三区| 欧美电影一区二区三区| 国产伦精品一区二区三区妓女下载 | 羞羞在线观看视频| 黄页视频在线91| 精品国产制服丝袜高跟| 成年人的黄色片| 亚洲成人激情av| 欧美日本在线看| 麻豆av免费看| 亚洲在线观看免费| 欧美在线观看18| 国产伦精品一区二区三区妓女下载| 亚洲色图都市小说| 在线观看亚洲精品| 91色.com| 亚洲综合图片区| 欧美日韩国产一区| 国产一线在线观看| 日韩中文字幕不卡| 欧美一区二区在线视频| 中文字幕 亚洲一区| 日本不卡在线视频| 精品少妇一区二区三区免费观看| 波多野结衣办公室33分钟| 美女免费视频一区| 久久久久亚洲蜜桃| 亚洲精品久久久久久国| 日韩一卡二卡三卡国产欧美| 精品久久久久久中文字幕人妻最新| 日韩不卡在线观看日韩不卡视频| 欧美一区二区三区视频在线 | 欧美做爰爽爽爽爽爽爽| 成人av动漫在线| 亚洲精品老司机| 欧美老女人第四色| 影音先锋黄色资源| 久久激五月天综合精品| 国产午夜精品在线观看| 久久久久久视频| 被黑人猛躁10次高潮视频| 亚洲福利视频一区二区| 日韩视频不卡中文| eeuss中文字幕| 波多野结衣在线一区| 亚洲一区精品在线| 欧美福利电影网| 久久久久久久毛片| 国产69精品久久777的优势| 一区二区三区在线视频免费| 在线播放中文一区| 成人一级片免费看| 99视频精品免费视频| 五月激情综合婷婷| 国产视频在线观看一区二区三区| 免费中文字幕在线| 在线观看国产三级| 国产麻豆精品视频| 一区二区三区欧美日韩| 日韩欧美精品在线视频| 成年人二级毛片| 岛国精品一区二区三区| 久久99久国产精品黄毛片色诱| 国产人成一区二区三区影院| 在线观看成人小视频| 国内精品久久99人妻无码| 国产九九视频一区二区三区| 亚洲激情网站免费观看| 日韩精品自拍偷拍| 成人免费黄色小视频| 亚洲国产精品无码久久久久高潮| 国产一二精品视频| 亚洲自拍偷拍九九九| 久久众筹精品私拍模特| 一本久久a久久精品亚洲| 亚洲色图14p| 99久久婷婷国产综合精品电影 | av午夜一区麻豆| 日韩电影在线观看电影| 国产精品久久久久久亚洲毛片 | 99久久精品国产导航| 日韩国产欧美视频| 中文字幕制服丝袜成人av| 欧美一区二区三区免费大片 | 中文字幕资源站| 91精品小视频| 99视频精品在线| 国产一区二区久久| 天天免费综合色| 亚洲青青青在线视频| 久久久777精品电影网影网|