Linux下的Webserver(1)目录模块

本文档详细介绍了Linux下Webserver日志模块的设计,包括使用单例模式确保唯一实例,时间结构体如time_t和tm的使用,格式化函数_vsnprintf的应用,以及同步和异步写入日志的方法,特别是阻塞队列在异步写入中的应用。
摘要由CSDN通过智能技术生成

本目录模块作用是记录系统可能发生的各种情况

以下记录一些个人在目录模块所理解的知识点。

一:单例模式

单例 Singleton 是设计模式的一种,其特点是只提供唯一一个类的实例,具有全局变量的特点,在任何位置都可以通过接口获取到那个唯一实例;
// 单例模式  将构造函数私有化
static  LOG*get_instance() 
 {
   
static Log instance;   return &instance;  
}
函数返回值为static,接收静态变量。 static修饰变量,使变量的生命周期延长至程序结束。

二:时间结构体与函数

  time_t t=time(NULL);//获取系统时间,单位为秒;
  struct tm*sys_tm=localtime(&t); //把当前时间系统所偏移的秒数时间转换为本地时间
  struct tm my_tm=*sys_tm;
  
  struct timeval now={
   0,0};
  gettimeofday(&now,NULL);//获得当前精确时间(1970年1月1日到现在的时间)
  time_t t=now.tv_sec;
  struct tm*sys_tm=localtime(&t);
  struct tm my_tm=*sys_tm;

time_t :用来存储从1970年到现在经过了多少秒
struct tm:用来直接存储年月日
struct tm {
int tm_sec; /* 秒,范围从 0 到 59 /
int tm_min; /
分,范围从 0 到 59 /
int tm_hour; /
小时,范围从 0 到 23 /
int tm_mday; /
一月中的第几天,范围从 1 到 31 /
int tm_mon; /
月份,范围从 0 到 11 /
int tm_year; /
自 1900 起的年数 /

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值