我的编程空间,编程开发者的网络收藏夹
学习永远不晚

程序中获取linux系统启动时间方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

程序中获取linux系统启动时间方法

1、前言

时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同。linux内核里面用一个名为jiffes的常量来计算时间戳。应用层有time、getdaytime等函数。今天需要在应用程序获取系统的启动时间,通过sysinfo中的uptime可以计算出系统的启动时间。

2、sysinfo结构

sysinfo结构保持了系统启动后的信息,主要包括启动到现在的时间,可用内存空间、共享内存空间、进程的数目等。man sysinfo得到结果如下所示:


struct sysinfo {
long uptime;
unsigned long loads[3];
unsigned long totalram;
unsigned long freeram;
unsigned long sharedram;
unsigned long bufferram;
unsigned long totalswap;
unsigned long freeswap;
unsigned short procs;
char _f[22];

3、获取系统启动时间

通过sysinfo获取系统启动到现在的秒数,用当前时间减去这个秒数即系统的启动时间。程序如下所示:


#include <stdio.h>
#include <sys/sysinfo.h>
#include <time.h>
#include <errno.h>

static int print_system_boot_time()
{
struct sysinfo info;
time_t cur_time = 0;
time_t boot_time = 0;
struct tm *ptm = NULL;
if (sysinfo(&info)) {
fprintf(stderr, "Failed to get sysinfo, errno:%u, reason:%sn",
errno, strerror(errno));
return -1;
}
time(&cur_time);
if (cur_time > info.uptime) {
boot_time = cur_time - info.uptime;
}
else {
boot_time = info.uptime - cur_time;
}
ptm = gmtime(&boot_time);
printf("System boot time: %d-%-d-%d %d:%d:%dn", ptm->tm_year + 1900,
ptm->tm_mon + 1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
return 0;
}

int main()
{
if (print_system_boot_time() != 0) {
return -1;
}
return 0;
}


测试结果如下所:
查看图片

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

程序中获取linux系统启动时间方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

程序中获取linux系统启动时间方法

1、前言 时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同。linux内核里面用一个名为jiffes的常量来计算时间戳。应用层有time、getdaytime等函数。今天需要在应用程序获取系统的启动时间,通过sys
2022-06-04

linux中怎么获取系统启动时间

本篇文章给大家分享的是有关linux中怎么获取系统启动时间,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、前言时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精
2023-06-09

怎么获取linux系统启动时间

本篇内容主要讲解“怎么获取linux系统启动时间”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么获取linux系统启动时间”吧!1、前言时间对操作系统来说非常重要,从内核级到应用层,时间的表达
2023-06-09

linux获取系统启动时间示例详解

1、前言 时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同。linux内核里面用一个名为jiffes的常量来计算时间戳。应用层有time、getdaytime等函数。今天需要在应用程序获取系统的启动时间,百度了一下
2022-06-04

Linux系统如何获取启动时间和正常运行时间

小编给大家分享一下Linux系统如何获取启动时间和正常运行时间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们在Ubuntu 18.04 LTS系统上运行命令您
2023-06-28

Linux系统中时间的获取和使用

linux系统时间有两种。(1)日历时间。该值是自协调世界时(UTC)1970年1月1日00:00:00这个特定时间以来所经过的秒数累计值。基本数据类型用time_t保存。最后通过转换才能得到我们平时所看到的24小时制或者12小时间制的时间
2022-06-04

Android获取系统时间的多种方法

Android中获取系统时间有多种方法,可分为Java中Calendar类获取,java.util.date类实现,还有android中Time实现。 现总结如下: 方法一:void getTime1(){ long time=System
2022-06-06

Linux服务器系统怎么查看进程启动时间

本篇内容介绍了“Linux服务器系统怎么查看进程启动时间”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux系统服务器下查看进程启动时间
2023-06-05

怎么改善应用程序在Linux中的启动时间

这篇文章给大家分享的是有关怎么改善应用程序在Linux中的启动时间的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 Linux 中使用 Preload 改善应用程序启动时间Preload 可以在 AUR 上找到。
2023-06-16

在Linux系统中的时间转化方法

本篇内容介绍了“在Linux系统中的时间转化方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Linux时间转化方法:  (1)date
2023-06-13

windows8系统开机自动启动程序的使用方法图解

在XP和Win7系统中,我们可以通过“msconfig”命令打开系统配置窗口,借助其中的“启动”管理功能来控制自启动程序。但是在Windows 8里,系统配置里的启动管理功能搬家了,搬到一个更
2022-06-04

Android使用Intent启动其他非系统应用程序的方法

本文实例讲述了Android使用Intent启动其他非系统应用程序的方法。分享给大家供大家参考,具体如下: android应用程序内部通过Intent来实现Activity间的跳转。也知道通过Intent调用系统程序。但若想在应用程序A内开
2022-06-06

Ubuntu中为Android系统上编写Linux内核驱动程序实现方法

在智能手机时代,每个品牌的手机都有自己的个性特点。正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了。据统计,截止2011年5月,AppStore的应用软件数量达381062个,
2022-06-06

在WinXP系统中安装远程启动服务的方法

所需软件:DLC协议程序,将下载后的文件解压到一个目录中(如 D:XPRPL),注意如果您使用的是10/100自适应的网卡,一定要将网线的另一端联好开机,即保证“本地连接”是启用的,在“本地连接&rdqu
2023-06-01

如何使用Systemd和Crontab在Linux系统中自动重启应用程序

要使用Systemd和Crontab在Linux系统中自动重启应用程序,你可以按照以下步骤进行操作:1. 创建一个Systemd服务单元:在`/etc/systemd/system/`目录下,创建一个以`.service`结尾的服务单元文件
2023-10-09

linux系统中安装程序、软件的方法有哪些

这篇文章将为大家详细讲解有关linux系统中安装程序、软件的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在Windows下安装软件时,只需运行软件的安装程序(setup、install等)或者
2023-06-12

编程热搜

目录