1. 程式人生 > >將/proc/uptime檔案中的數轉化成long然後轉成日期

將/proc/uptime檔案中的數轉化成long然後轉成日期

思路:
1、格式化讀取檔案中兩個數,儲存在兩個字串中。
2、/proc/uptime中表示秒,捨棄小數。將整數部分轉為long。
3、由long轉日期。

#include <stdio.h>

int main()
{
    FILE *fp = NULL;
    fp = fopen("uptime.c", "r");
    if(fp == NULL)
    {
        printf("open file failed!\n");
        return 0;
    }
    // 分別儲存兩個數,長度要比檔案中數略大
    // 可以使用cat /proc/uptime提前檢視一下
char t[20]; char u[20]; fscanf(fp, "%s %s", t, u); // 統計第一個數的整數位個數,並且轉成long,省略第2個數處理 unsigned long dt = 0; int i; for(i=0; i<20; i++) { if(t[i] == '.') break; } int j = 1; for(i--; i>=0; i--) { dt += (t[i]-'0') * j; j *= 10
; } // long轉date 並輸出 unsigned long day, hour, minute, second; day = dt / (60*60*24); dt = dt % (60*60*24); hour = dt / (60*60); dt = dt % (60*60); minute = dt / 60; second = dt % 60; printf("%ld:%ld:%ld:%ld\n", day, hour, minute, second); fclose(fp); return 0; }