Книга: Программирование для Linux. Профессиональный подход

Листинг 7.7. (print-uptime.c) Отображение времени работы и времени простоя системы

Листинг 7.7. (print-uptime.c) Отображение времени работы и времени простоя системы

#include <stdio.h>
/* Запись результата в стандартный выходной поток.
   Параметр TIME это количество времени, а параметр LABEL --

   короткая описательная строка. */
void print_time(char* label, long time) {
 /* Константы преобразования. */
 const long minute = 60;
 const long hour = minute * 60;
 const long day = hour * 24; /* Вывод результата. */
 printf("%s: %ld days, %ld:%02ld:%02ldn", label, time / day,
  (time % day) / hour, (time % hour) / minute, time % minute);
}
int main() {
 FILE* fp;
 double uptime, idle_time;
 /* Чтение показателей времени из файла /proc/uptime. */
 fp = fopen("/proc/uptime", "r");
 fscanf(fp, "%lf %lfn", &uptime, &idle_time);
 fclose(fp);
 /* Форматирование и вывод. */
 print_time("uptime ", (long)uptime);
 print_time("idle time", (long)idle_time);
 return 0;
}

Общее время работы системы отображают также команда uptime и функция sysinfo() (описана в разделе 8.14, "Функция sysinfo(): получение системной статистики"). Команда uptime дополнительно выдает показатели средней загруженности, извлекаемые из файла /proc/loadavg.

Оглавление книги


Генерация: 1.294. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз