亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

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

2024-09-05 23:04:51
字體:
來源:轉載
供稿:網友

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

/*************************************************************************  > 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 DEBUGvoid plog(const char *format, ...);void pinfo(const char *format, ...);#define debug(fmt, args...) plog(fmt, ##args) #else#define debug(fmt, args...) do{}while(0)#endifstatic 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 命令可以實現日志的查詢,以及其他功能,不了解的話,自行查資料解決。

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


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产福利视频| 亚洲国产天堂久久国产91| 欧美极品少妇xxxxⅹ裸体艺术| 在线精品播放av| 97av在线视频免费播放| 久久久久久噜噜噜久久久精品| 久久国产精品视频| 一本大道香蕉久在线播放29| 91亚洲国产成人精品性色| 欧美日韩高清在线观看| 久久精品国产久精国产思思| 国产精品第一视频| 久久久久久久久久久久久久久久久久av| 久久精品小视频| 欧美中文在线字幕| 国产精品欧美久久久| 精品激情国产视频| 久久成年人免费电影| 亚洲精品在线观看www| 不卡在线观看电视剧完整版| 欧美激情乱人伦| 国产精品欧美日韩一区二区| 91麻豆国产语对白在线观看| 日韩动漫免费观看电视剧高清| 北条麻妃在线一区二区| 欧美极品美女视频网站在线观看免费| 国产成人97精品免费看片| 久久天天躁狠狠躁老女人| 亚洲日本欧美日韩高观看| 韩国国内大量揄拍精品视频| 夜夜嗨av一区二区三区免费区| 亚洲日韩欧美视频| 久久久国产精品视频| 欧美午夜精品久久久久久人妖| 国产日产久久高清欧美一区| 亚洲高清福利视频| 色诱女教师一区二区三区| 亚洲一区二区三区视频| 亚洲男人的天堂在线播放| 日韩不卡中文字幕| 亚洲xxxx妇黄裸体| 91精品视频在线免费观看| 欧美激情免费视频| 久久精品视频中文字幕| 久久精品一区中文字幕| 亚洲精品成人免费| 亚洲最大成人网色| 久久视频国产精品免费视频在线| 久久免费国产精品1| 一区二区av在线| 亚洲国产精品小视频| 一区二区欧美日韩视频| 久久久久久免费精品| 国产精品久久久久av免费| 国产精品久久久久久久久久久新郎| 日本电影亚洲天堂| 在线播放日韩专区| 国产精品99久久99久久久二8| 国产精品一区二区av影院萌芽| 成人免费福利在线| 日韩中文字幕在线看| 精品久久久久久久久久久| 粉嫩av一区二区三区免费野| 国产成人涩涩涩视频在线观看| 亚洲综合精品一区二区| 日韩国产精品视频| 欧美理论电影在线观看| 亚洲高清不卡av| 中文字幕在线看视频国产欧美在线看完整| 国产91九色视频| 国产乱肥老妇国产一区二| 精品中文字幕在线观看| 国产在线视频欧美| 欧美一性一乱一交一视频| 国产精品成人久久久久| 久久人人爽人人爽人人片av高请| 96精品视频在线| 668精品在线视频| 久久免费精品视频| 亚洲成人a级网| 欧美视频免费在线| 日韩av在线影院| 欧美噜噜久久久xxx| 亚洲黄色av女优在线观看| 亚洲嫩模很污视频| 国产成人精品999| 日本精品久久久久久久| 欧美日韩国产激情| 亚洲欧洲黄色网| 国产精品爱久久久久久久| 日韩在线视频观看正片免费网站| 91国内免费在线视频| 国产成人av在线| 日韩大片免费观看视频播放| 亚洲第一区中文99精品| 国产91精品在线播放| 国产日产欧美精品| 国产福利精品视频| 亚洲一区二区三区在线免费观看| 日韩精品有码在线观看| 亚洲一区国产精品| 欧美一级在线播放| 国产91热爆ts人妖在线| 性欧美xxxx交| 91人成网站www| 久久精品国产精品| 亚洲黄页视频免费观看| 国产精品久久不能| 国产性猛交xxxx免费看久久| 日韩中文有码在线视频| 插插插亚洲综合网| 欧美性理论片在线观看片免费| 日韩电影中文 亚洲精品乱码| 日本午夜精品理论片a级appf发布| 91社影院在线观看| 中文一区二区视频| 久久久久免费精品国产| 亚洲欧洲美洲在线综合| 日本中文字幕久久看| 亚洲图片欧美日产| 国产精品91一区| 久久视频这里只有精品| 久久久久久免费精品| 日韩女优在线播放| 欧美性猛交丰臀xxxxx网站| 久久视频国产精品免费视频在线| 粗暴蹂躏中文一区二区三区| 国产精品对白刺激| 国产亚洲精品美女久久久| 欧美亚洲在线观看| 国产69精品久久久久9999| 4k岛国日韩精品**专区| 日韩在线欧美在线| 亚洲欧美国产精品久久久久久久| 秋霞午夜一区二区| 亚洲人成电影在线观看天堂色| 国产日韩欧美视频在线| 国产中文欧美精品| 亚洲色在线视频| 日韩成人av网| 亚洲精品国产综合区久久久久久久| 成人在线视频福利| 亚洲色图美腿丝袜| 成人av资源在线播放| 日本久久久久久久久| 国产精品欧美激情在线播放| 国产一区二区视频在线观看| 日韩中文在线不卡| 亚洲精品一区二区三区婷婷月| 日韩精品www| 亚洲欧洲在线看| 国产精品扒开腿做爽爽爽的视频| 欧美激情亚洲综合一区| 在线观看国产精品日韩av| 中文字幕视频在线免费欧美日韩综合在线看| 一区二区在线视频播放| 在线亚洲欧美视频| 另类视频在线观看| 亚洲国产精品嫩草影院久久| 国产91精品久| 精品福利一区二区| 日韩小视频在线观看| 欧美性xxxx极品高清hd直播| 亚洲国产成人精品久久|