Linux时间系统调用总结

本文详细介绍了C语言中处理时间的各种函数,包括获取当前时间的方法(如time_t time、gettimeofday、clock_gettime)、时间格式化输出(如asctime、ctime、strftime)及time_t到struct tm的转换等。适用于需要进行时间操作的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <time.h>

typedef __time_t time_t;
//获取time_t表示的当前时间
time_t time(time_t *t);

struct timeval
{
    __time_t tv_sec;//秒
    __suseconds_t tv_usec;//微秒
};
//获取timeval表示的当前时间,有BUG,少用
int gettimeofday(struct timeval *tv, struct timezone *tz);

struct timespec
{
    __time_t tv_sec;//秒
    __syscall_slong_t tv_nsec;//纳秒
};
//获取timespec表示的当前时间,一般用来替换gettimeofday
int clock_gettime(clockid_t clk_id, struct timespec *tp);
//上面的这些时间都是距离1970-01-01 00:00:00(UTC)的时间

struct tm//通过年月日等的方式表示时间,主要用来格式化输出
{
    int tm_sec;
    int tm_min;
    int tm_hour;
    int tm_mday;
    int tm_mon;
    int tm_year;
    int tm_wday;
    int tm_yday;
    int tm_isdst;
#ifdef __USE_BSD
    long int tm_gmtoff;
    const char *tm_zone;
#else
    long int __tm_gmtoff;
    const char *__tm_zone;
#endif
};

//格式化输出时间的系统调用(要么是time_t要么是struct tm)
char* asctime(const struct tm *tm);
char* asctime_r(const struct tm *tm, char *buf);
char* ctime(const time_t *timep);
char* ctime_r(const time_t *timep, char *buf);
//自定义时间的格式
size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);

//想要输出timeval或者timespec格式的时间,需要先将其转化为time_t格式(直接赋值秒数)

//将time_t转化为struct tm的系统调用
struct tm* localtime(const time_t *timep);
struct tm* localtime_r(const time_t *timep, struct tm* result);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值