国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

程序中獲取linux系統啟動時間方法

2019-10-26 18:38:37
字體:
來源:轉載
供稿:網友

1、前言

時間對操作系統來說非常重要,從內核級到應用層,時間的表達方式及精度各部相同。linux內核里面用一個名為jiffes的常量來計算時間戳。應用層有time、getdaytime等函數。今天需要在應用程序獲取系統的啟動時間,通過sysinfo中的uptime可以計算出系統的啟動時間。

2、sysinfo結構

sysinfo結構保持了系統啟動后的信息,主要包括啟動到現在的時間,可用內存空間、共享內存空間、進程的數目等。man sysinfo得到結果如下所示:

代碼如下:
 struct sysinfo {
                long uptime;             /* Seconds since boot */
                unsigned long loads[3];  /* 1, 5, and 15 minute load averages */
                unsigned long totalram;  /* Total usable main memory size */
                unsigned long freeram;   /* Available memory size */
                unsigned long sharedram; /* Amount of shared memory */
                unsigned long bufferram; /* Memory used by buffers */
                unsigned long totalswap; /* Total swap space size */
                unsigned long freeswap;  /* swap space still available */
               unsigned short procs;    /* Number of current processes */
               char _f[22];             /* Pads structure to 64 bytes */

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:%s/n",
        errno, strerror(errno));

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 格尔木市| 广南县| 柏乡县| 鄂温| 小金县| 高邮市| 屯昌县| 哈巴河县| 涪陵区| 贡山| 沽源县| 浮梁县| 景东| 辽源市| 鄂伦春自治旗| 广元市| 叙永县| 达日县| 东乡族自治县| 大兴区| 石家庄市| 朔州市| 巧家县| 成武县| 登封市| 芮城县| 小金县| 读书| 淳化县| 通河县| 长乐市| 永善县| 九龙城区| 康定县| 普安县| 红安县| 青州市| 综艺| 岐山县| 赤峰市| 那曲县|