将/proc/uptime文件中的数转化成long然后转成日期

本文介绍如何读取Linux系统中/proc/uptime文件,获取系统启动时间和空闲时间,并将其从秒数转换为日期格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:
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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值