linux c获取系统启动时间
2015-07-13 11:35
706 查看
sysinfo 函数原型
sysinfo 结构体说明
C源码:
int sysinfo(struct sysinfo *info); ##获取系统相关信息结构体
sysinfo 结构体说明
struct sysinfo { long uptime; /* 启动到现在经过的时间 */ unsigned long loads[3]; /* 1 , 5, 15 分的系统负载*/ unsigned long totalram; /* 总的可用的内存大小 */ unsigned long freeram; /* 还未被使用的内存大小 */ unsigned long sharedram; /* 共享的存储器的大小*/ unsigned long bufferram; /* 共享的存储器的大小 */ unsigned long totalswap; /* 交换区大小 */ unsigned long freeswap; /* 还可用的交换区大小 */ unsigned short procs; /* 当前进程数目 */ unsigned long totalhigh; /* 总的高内存大小 */ unsigned long freehigh; /* 可用的高内存大小 */ unsigned int mem_unit; /* 以字节为单位的内存大小 */ char _f[20-2*sizeof(long)-sizeof(int)]; /* libc5的补丁 };
C源码:
#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:%s\n", 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 = localtime(&boot_time); printf("System boot time: %d-%-d-%d %d:%d:%d\n", 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; }
相关文章推荐
- Linux内核学习笔记——内核内存管理方式
- How to install g++-4.6-arm-linux-gnueabihf
- 一个有趣的linux命令
- Linux系统文件I/O编程(三)---I/O多路复用
- Linux设备驱动之I/O端口与I/O内存
- linux下jvm调优实例
- Linux硬盘的检测
- linux下创建一个可运行脚本
- 移植Linux3.4.2版本内核到mini2440(一)
- linux内核包转发过程(三)NIC帧接收分析
- Linux PS 命令详解
- Linux下关闭和开启IPv6的方法
- Linux下ps命令详解
- linux命令学习DAY.2
- linux(centos)搭建SVN服务器
- 悟空学Linux专栏----第26篇
- VM linux虚拟机 和主机进行ftp连接
- linux popen函数
- 悟空学Linux专栏----第25篇
- Linux内核中ioremap映射的透彻理解