当前位置: 首页 > 面试题库 >

我需要调用什么API才能使系统正常运行?

法弘壮
2023-03-14
问题内容

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


问题答案:

您要查找的系统调用是sysinfo()。

它在sys / sysinfo.h中定义

它的签名是:int sysinfo(struct 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 */
};

玩得开心!



 类似资料:
  • 问题内容: 我想在我的网站上使用我的图像编辑工具。我还需要吗? 我不了解这种情况。如果我不需要它,那么我们什么时候可以同时使用nodejs和angularjs? 问题答案: 您不需要NodeJS即可创建客户端图像编辑工具。 AngularJS是一个由Google和社区维护的Web应用程序框架,可帮助创建单页应用程序,该应用程序由一个HTML页面组成,该页面包含客户端的CSS和JavaScript。

  • 问题内容: 我认为这个问题已经存在,但是我找不到。 我不明白,为什么必须要有一个功能接口才能使用lambda。考虑以下示例: 这可以正常工作,但是如果您取消注释行,则不会。为什么?以我的理解,编译器应该能够区分这两种方法,因为它们具有不同的输入参数。为什么我需要一个功能接口并炸毁我的代码? 编辑:链接的重复项没有回答我的问题,因为我在询问不同的方法参数。但是在这里,我得到了一些非常有用的答案,这要

  • 我刚刚安装了rails 4.2。我找到了制作快速博客的教程:https://www.reinteractive.net/posts/32-ruby-on-rails-3-2-blog-in-15-minutes-step-by-step。但是,它使用rails 3.2。我已经完成了rake db:migrate之前它所说的一切,但是,当我运行服务器时,我只得到一个错误页面。自3.2以来发生了什么变

  • 问题内容: 有时,我们遇到一个SWT复合材料,它绝对拒绝正确布局自己。当我们在复合体上调用dispose然后将其替换为另一个时,常常会遇到这种情况。尽管似乎并不严格限于这种情况。 当我们遇到这个问题,约50%的时间,我们可以调用和对违规复合材料,并且一切都会好起来。但是,大约有50%的时间,我们必须这样做: 布局管理器之类的每一种组合都曾经发生过这种情况。 我希望我有一个很好的,简单的,可复制的案

  • 我试图让VSCode启动并使用TypeScript运行,但收效甚微。 我正在看以下内容: https://code.visualstudio.com/docs/languages/typescript 看起来,一旦安装了编译器VSCode,就应该可以正常工作,但考虑到以下情况: tsconfig.json 包裹json tasks.json 项目 你好世界ts 从终端运行构建任务或tsc会正确指示

  • 问题内容: 我要查看我是在Windows还是Unix等上,我需要查看什么? 问题答案: 的输出platform.system()如下: Linux: Linux Mac: Darwin Windows: Windows