如何在Linux C程序中打印当前系统时间?

在Linux环境下,使用C语言打印时间有多种方法,以下是几种常见的实现方式及其详细说明:

方法一:使用time.h库函数打印当前时间

如何在Linux C程序中打印当前系统时间?插图1
(图片来源网络,侵删)

1、头文件#include <stdio.h>#include <time.h>

2、函数原型time_t time(time_t *tloc); struct tm *localtime_r(const time_t *timep, struct tm *result);

3、示例代码

```c

#include <stdio.h>

如何在Linux C程序中打印当前系统时间?插图3
(图片来源网络,侵删)

#include <time.h>

int main() {

struct tm tloc;

time_t t = time(NULL);

localtime_r(&t, &tloc);

如何在Linux C程序中打印当前系统时间?插图5
(图片来源网络,侵删)

printf("%04d-%02d-%02d %02d:%02d:%02d

",

tloc.tm_year + 1900,

tloc.tm_mon + 1,

tloc.tm_mday,

tloc.tm_hour,

tloc.tm_min,

tloc.tm_sec);

return 0;

}

```

4、运行效果:该程序会输出当前的日期和时间,例如2021-10-07 15:32:09

方法二:使用sys/time.h库函数打印精确时间

1、头文件#include <stdio.h>#include <sys/time.h>#include <unistd.h>

2、函数原型struct timeval gettimeofday(struct timeval *tv, struct timezone *tz); double get_us();

3、示例代码

```c

#include <stdio.h>

#include <sys/time.h>

#include <unistd.h>

double __get_us(struct timeval t) {

return (t.tv_sec * 1000000 + t.tv_usec) / 1000.0;

}

int main() {

struct timeval start_time, stop_time;

gettimeofday(&start_time, NULL);

// 待运行代码段

gettimeofday(&stop_time, NULL);

printf("Time use %f ms

", (__get_us(stop_time) __get_us(start_time)) / 1000);

sleep(1); // 睡眠1秒,以便更明显地看到时间差

return 0;

}

```

4、运行效果:该程序会输出代码段的执行时间,例如Time use 1000.99400 ms

方法三:使用gettimeofday函数打印毫秒级时间戳

1、头文件#include <stdio.h>#include <sys/time.h>#include <unistd.h>

2、函数原型gettimeofday(struct timeval *tv, struct timezone *tz); struct timeval { long tv_sec; /* seconds */ long tv_usec; /* microseconds */ };

3、示例代码

```c

#include <stdio.h>

#include <sys/time.h>

#include <unistd.h>

void printtimestamp() {

struct timeval tv;

gettimeofday(&tv, NULL);

int milli = tv.tv_usec / 1000;

char buffer [80];

localtime_r(&tv.tv_sec, &t);

strftime(buffer, 80, "%Y-%m-%d %H:%M:%S:%03d", &t, &milli);

printf("%s

", buffer);

}

int main() {

while (1) {

printtimestamp();

sleep(1);

}

return 0;

}

```

4、运行效果:该程序每秒打印一次当前时间,格式为YYYY-MM-DD HH:MM:SS:MMM

通过上述几种方法,可以在不同的精度和格式要求下,实现在Linux环境中使用C语言打印时间的功能。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/60192.html

小末小末
上一篇 2024年9月25日 23:10
下一篇 2024年9月25日 23:14

相关推荐