Уместно ли собирать статистику по учету этого процесса? - PullRequest
0 голосов
/ 06 апреля 2010

На основе sys / acct.h (V1, а не V3) мне нужно собрать статистику использования пользователей на основе парсера, который анализирует файл acct построчно.Парсер будет запускать и анализировать весь файл каждые N секунд, и мне нужно собрать пользовательскую статистику, накопленную с момента последнего запуска (N секунд назад).Я не уверен, что будет наиболее подходящим способом сделать это, основываясь на информации, предоставленной sys / acct.h.

Может быть что-то вроде этого:

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

Также comp_t isСчитается, что это «значение с плавающей точкой, состоящее из 3-битной экспоненты base-8 и 13-битной мантиссы», но я думаю, что u_int16_t - это просто unsigned short int.Должен ли я преобразовать его в длинный с помощью предоставленной формулы или нет?

1 Ответ

0 голосов
/ 06 апреля 2010

Вам нужно замаскировать показатель степени и сдвинуть мантиссу.Файл, на который вы ссылаетесь, показывает, как:

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

Вы можете преобразовать что-либо в этом в больший тип, чтобы гарантировать, что компилятор использует нужный вам размер, но будьте осторожны, чтобы не сделать это неправильновы получите неправильные результаты.В любом случае, в этом нет необходимости, но попробовать не мешало бы:

v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3L);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...