我应该调用什么 API 来获取系统正常运行时间?

2024-02-24

我想从基于 Linux 的系统上运行的 C 应用程序中获取系统正常运行时间。我不想调用 uptime(1) 并解析输出,我想调用我怀疑存在的底层 C API。有人知道是否有这样的调用,或者 uptime(1) 是否只是处理从 wtmp 获取的记录?


您正在寻找的系统调用是 sysinfo()。

它在 sys/sysinfo.h 中定义

它的签名是: int sysinfo(结构 sysinfo *info)

从内核 2.4 开始,结构如下所示:

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 */
    unsigned long totalhigh; /* Total high memory size */
    unsigned long freehigh;  /* Available high memory size */
    unsigned int mem_unit;   /* Memory unit size in bytes */
    char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding for libc5 */
};

玩得开心!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该调用什么 API 来获取系统正常运行时间? 的相关文章

随机推荐

  • Connect-mongo 会话不会自动删除

    我有一个使用 NodeJS Express MongoDB 和 connect mongo 的应用程序 我的问题是 会话过期时似乎不会自动从 MongoDB 中删除 因此数据库大小会不断增长 直到磁盘已满 connect mongo 的开发
  • 免注册 COM 互操作和相关程序集

    我们正在致力于将基于 MFC 的大型应用程序与少数托管 NET 加载项集成 与这些加载项的通信是通过 COM 完成的 从历史上看 我们只是使用注册表来使这些加载项 作为 COM 服务器 可供应用程序使用 但是 现在我们尝试使用免注册 COM
  • 如何在Python中使用wand优化图像大小

    我想使用魔杖调整和优化 png 和 jpg 图像大小 使用 PIL 如果我指定优化选项 我可以保存大约三分之一大小的相同图像 with open filename rb as f pimage PImage open f resized p
  • 表单认证滑动过期不起作用

    我有下面的代码 int intTimeout FormsAuthentication Timeout Hours 60 FormsAuthentication Timeout Minutes var authTicket new Forms
  • Terraform 错误:锁定状态时出错:获取状态锁时出错:发生 2 个错误:

    我尝试了 terraform 版本 v0 12 26 和 v0 13 3 两者都失败了 地形计划 获取状态锁 这可能需要一些时间 错误 锁定状态时出错 获取状态锁时出错 发生 2 个错误 ResourceNotFoundException
  • 初始化期间无法成功更新网络信息

    当我当天第一次启动该应用程序时 我总是遇到上述问题 当我第一次启动应用程序时 我会调用服务器来获取一些数据 然后播放动画视频 服务器调用位于与主 UI 线程不同的线程中 这与网络可达性或动画视频有关吗 我认为第一部分是主要问题 但不能一直重
  • 串口通讯显示

    我正在尝试通过串行端口通信进行聊天 这个聊天必须在 WPF 项目中有一个界面 我已经制作了界面和所有内容 我陷入了通过串口接收响应的困境 我已经尝试从串行端口添加 DataReceived 事件 但我担心我使用错误 因为我以前从未用 C 编
  • 已安装 Scipy 但 Tflearn 表示不支持 Scipy (win7)

    我正在使用 Windows 7 和 tflearn 版本 0 2 2 tensorflow 版本 0 12 1 python 3 5 并且我手动安装了 scipyhttp www lfd uci edu gohlke pythonlibs
  • 使用奏鸣曲管理包时已弃用的警告

    我正在使用 symfony2 7 和 sonata admin 学说 orm 捆绑包 我遵循了官方安装说明 除了一件事之外工作正常 每次请求时 我都会收到以下已废弃的警告 但我不知道如何消除它 Date 2016 10 18 08 58 2
  • 有人可以解释一下 Objective-C 方法声明语法吗

    我正在阅读一本 iPhone 开发书 但并不真正了解 Objective C 在大多数情况下 我能够理解正在发生的事情 但有一些方法声明 如下所示 让我遇到了一些麻烦解析 例如 NSInteger tableView UITableView
  • 相当于 Java 中的 C++ 移位运算符 << 吗?

    C 移位运算符 lt lt 不循环 例如 如果您这样做 C int a 1 cout lt lt a lt lt 38 你得到 0 但是 在 Java 中 你实际上循环并得到有效值 64 我需要将一些 C 代码转换为 Java 那么我应该使
  • 从32位程序文件夹编译到64位1时,更改IntelliJ 13中的jdk路径

    我在尝试制作我的 java 项目时遇到了这个问题 我刚刚因为各种原因卸载了64位jdk并安装了32位jdk 我收到错误 无法运行程序 C Program Files Java jdk1 7 0 51 bin java 在 目录 C User
  • Kotlin 类初始化语义是什么?

    我在语言定义中找不到任何解释 Kotlin 类初始化的内容 import java util Properties fun main args Array
  • 在 Mac OS X 上,如何获得 System/LibC 的调试版本以进行源代码级调试?

    我从 opensource apple com 下载了 LibC 源代码 但由于它是一个整体库 usr lib libSystem B dylib 的一部分 我是否必须以某种方式重建整个库 我有一个从 Linux 移植的 BSD 命令行程序
  • 向 parcoord 添加刻度(平行坐标图)

    这 MASS 包中的 parcoord 函数看起来不错 但是我如何添加刻度 四个y轴 代码在这里 ir lt rbind iris3 1 iris3 2 iris3 3 parcoord log ir c 3 4 2 1 col 1 0 1
  • 将 ImageView 对齐到布局 android 的右侧

    我有一个布局
  • 如何在 Rust 中彻底打破 tokio-core 事件循环和 futures::Stream

    我正在涉足 tokio core 并且可以弄清楚如何生成事件循环 然而 有两件事我不确定 如何优雅地退出事件循环以及如何退出事件循环内运行的流 例如 考虑这段简单的代码 它在事件循环中生成两个侦听器 并等待另一个线程指示退出条件 exter
  • Windows Powershell 有时不输出任何值(温度传感器)

    有时会出现没有显示温度传感器的情况 我使用 Powershell 来读取这些值 这经常有效 我想知道为什么 Windows 有时不返回任何内容 是在我的笔记本电脑 软件还是其他什么上吗 powershell Get WmiObject Cl
  • React 远程控制台日志记录

    我使用 Mongo 设置了 Express 服务器 以便在使用 React 对 Electron 应用程序进行调试测试期间记录控制台日志 我只是使用 ajax 发送通常使用 console log 打印的内容 这对于我想要记录的单个事件效果
  • 我应该调用什么 API 来获取系统正常运行时间?

    我想从基于 Linux 的系统上运行的 C 应用程序中获取系统正常运行时间 我不想调用 uptime 1 并解析输出 我想调用我怀疑存在的底层 C API 有人知道是否有这样的调用 或者 uptime 1 是否只是处理从 wtmp 获取的记