婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > linux下C語言實現寫日志功能

linux下C語言實現寫日志功能

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

先上程序,該程序經過測試能夠很好的實現寫日志要求

/*************************************************************************
  > 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);
}

程序實現的日志格式為:

時間 + 空格 + 具體實現(自己的調試內容)

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

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

linux如何查看日志:

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

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

標簽:湖南 遼源 楊凌 衡水 黃石 新鄉 海東 南通

巨人網絡通訊聲明:本文標題《linux下C語言實現寫日志功能》,本文關鍵詞  linux,下,語言,實現,寫,日志,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《linux下C語言實現寫日志功能》相關的同類信息!
  • 本頁收集關于linux下C語言實現寫日志功能的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人小视频免费观看| 欧美日韩久久久一区| 日本亚洲欧美天堂免费| 亚洲美女偷拍久久| 国产精品视频九色porn| 蜜桃免费网站一区二区三区| 欧美在线观看禁18| 免费在线观看一区| 精品日韩在线观看| 国产福利一区二区| 成人美女在线观看| 色哟哟亚洲精品| 91视频在线观看| 在线观看91视频| 极品少妇xxxx精品少妇偷拍| 精品亚洲国内自在自线福利| 久久久亚洲精华液精华液精华液| 成人av网站免费| 玉米视频成人免费看| 亚洲激情自拍视频| 欧美日韩不卡在线| 欧美一区二区女人| 成人av网站在线观看免费| 亚洲自拍偷拍欧美| 日韩不卡一二三区| 国产成人精品亚洲777人妖 | 日韩免费高清电影| 国产一区二区在线观看免费 | 成+人+亚洲+综合天堂| 99re这里只有精品6| 免费美女久久99| 国产一区二区三区久久久| 一区二区三区在线免费观看| 日韩女优电影在线观看| 成人a免费在线看| 欧美精品粉嫩高潮一区二区| 久久综合狠狠综合| 亚洲男女毛片无遮挡| 欧美大黄免费观看| 91黄色免费版| 欧美一级专区免费大片| 99视频有精品| 欧美本精品男人aⅴ天堂| 在线观看视频一区二区 | 高清成人免费视频| 国产一区欧美二区| 色av一区二区| 国产精品66部| 欧美色爱综合网| 国产精品久久久久久妇女6080 | 国产香蕉久久精品综合网| 欧美性受xxxx黑人xyx性爽| 国产成人在线影院| 91精品国产欧美一区二区18| 91麻豆蜜桃一区二区三区| 精品免费视频一区二区| 欧美喷水一区二区| 18涩涩午夜精品.www| 精品成a人在线观看| 亚洲综合清纯丝袜自拍| 成人av先锋影音| 国产日韩欧美精品综合| 日本伊人色综合网| 美女一区二区三区| 91国产免费看| 亚洲精品免费一二三区| 成人毛片视频在线观看| 日韩视频一区二区在线观看| 亚洲第一综合色| 色噜噜狠狠成人网p站| 1区2区3区国产精品| 中文字幕亚洲一区二区av在线| 国产一区二区三区精品视频| 国产成人精品免费视频网站| 精品国产一区二区三区av性色| 亚洲国产精品麻豆| 欧美三级日韩三级| 欧美一区二区国产| 欧美xxxxxxxx| 国产精品麻豆一区二区| 成人免费高清在线| 国产精品天美传媒沈樵| 9i看片成人免费高清| 成人精品鲁一区一区二区| 中国av一区二区三区| 亚洲嫩草精品久久| 一本高清dvd不卡在线观看| 91一区二区在线| 亚洲最大成人综合| 欧美日韩国产一级片| 婷婷夜色潮精品综合在线| 国产福利精品一区二区| 欧美三级资源在线| 亚洲成av人片在线观看无码| 欧美高清一级片在线| 国产三级精品在线| 色婷婷精品大视频在线蜜桃视频| 日韩欧美区一区二| 国产精品久久久久影院老司| 天堂一区二区在线| 久久精品一区二区三区av| 粉嫩绯色av一区二区在线观看 | 一区二区免费看| 日本一区中文字幕| 久久精品在这里| 色成人在线视频| 日本成人超碰在线观看| 国产精品你懂的在线| 石原莉奈在线亚洲三区| 久久精品视频网| 色综合久久九月婷婷色综合| 欧美日韩在线播放三区四区| 国产一区二区三区四| 亚洲欧美综合网| 国产剧情在线观看一区二区| 中文字幕在线免费不卡| 欧美一级片免费看| 亚洲日本成人在线观看| 国产东北露脸精品视频| 一区二区三区日韩欧美| 日韩你懂的在线观看| a在线欧美一区| 麻豆91在线观看| 这里只有精品99re| 亚洲综合在线视频| 日本韩国精品在线| 国产乱码精品一区二区三| 一个色综合av| 精品视频资源站| 风间由美一区二区av101| 亚洲成人动漫一区| 欧美色网一区二区| 亚洲天堂精品在线观看| 日韩精品在线网站| 欧美图区在线视频| av毛片久久久久**hd| 国产精品理论片| 国产a久久麻豆| 黄页视频在线91| 日韩欧美你懂的| 欧美精品视频www在线观看| 免费成人av资源网| 亚洲国产日韩a在线播放性色| 国产精品网站在线播放| 国产精品私人自拍| 91免费精品国自产拍在线不卡| 国产在线一区二区| 久久www免费人成看片高清| 亚洲精品欧美在线| 一区二区三区久久| 亚洲国产精品久久久久秋霞影院| 综合久久一区二区三区| 1区2区3区国产精品| √…a在线天堂一区| 99久久精品国产一区二区三区| 国产精品资源网| 国产精品18久久久| 丰满白嫩尤物一区二区| 成人黄色大片在线观看| 亚洲丝袜美腿综合| 欧美日韩在线观看一区二区| 日本美女一区二区| 久久97超碰国产精品超碰| 国产欧美精品一区| 欧美性猛交xxxxxxxx| 在线亚洲高清视频| 91精品国产综合久久香蕉的特点| 欧美一区二区视频观看视频| 日韩免费福利电影在线观看| 国产一区二区三区免费在线观看| 亚洲日本丝袜连裤袜办公室| 亚洲午夜视频在线观看| 精品久久久久久久久久久院品网| 精品粉嫩aⅴ一区二区三区四区| 91在线免费播放| 午夜电影网亚洲视频| 日本美女一区二区三区视频| 久久久精品免费网站| 亚洲国产精品国自产拍av| 亚洲自拍偷拍九九九| 精品一区二区三区免费播放| 99久精品国产| 欧美日韩精品一区视频| 精品国产伦一区二区三区观看体验| 白白色亚洲国产精品| 国产在线精品一区在线观看麻豆| 最新国产の精品合集bt伙计| 亚洲影视在线播放| 国产清纯白嫩初高生在线观看91 | 天天综合网天天综合色| 日韩一区二区三区视频| 欧美96一区二区免费视频| 国产ts人妖一区二区| 色综合欧美在线视频区| 日韩一区二区三区四区| 亚洲欧美日韩国产手机在线| 欧美激情一区二区三区在线| 亚洲一区二区综合| 国产精品一区在线| 91精品婷婷国产综合久久竹菊|