【问题标题】:Is this time related process accounting stats gathering appropriate?这次与时间相关的流程会计统计数据收集是否合适?
【发布时间】:2010-04-06 17:09:38
【问题描述】:

基于sys/acct.h(V1,不是 V3),我需要基于逐行解析 acct 文件的解析器收集一些用户使用统计信息。解析器将每 N 秒运行并解析整个文件,我需要收集自上次运行以来累积的用户统计信息(N 秒后)。根据 sys/acct.h 提供的信息,我不确定最合适的方法是什么。

可能是这样的:

if ((ac_btime + ac_etime) < (current_time - N)) { gather; }

comp_t 也被称为“由 3 位、以 8 为底的指数和 13 位尾数组成的浮点值”,但我认为 u_int16_t 只是一个无符号短整数。我是否应该使用提供的公式将其转换为 long 它?

【问题讨论】:

    标签: c linux process-accounting


    【解决方案1】:

    您需要屏蔽指数并移动尾数。您链接到的文件显示了如何:

    v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3);
    

    您可以将其中的某些内容转换为更大的类型,以确保编译器使用您想要的大小,但请注意不要对错误的部分执行此操作,否则您会得到错误的结果。无论如何,它不应该是必要的,但尝试一下不会有什么坏处:

    v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3L);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      • 2020-07-30
      • 1970-01-01
      • 2013-03-29
      相关资源
      最近更新 更多