Книга: Программирование для Linux. Профессиональный подход
Листинг 7.1. (clock-speed.c) Определение частоты процессора путем анализа файла /proc/cpuinfo
Листинг 7.1. (clock-speed.c) Определение частоты процессора путем анализа файла /proc/cpuinfo
#include <stdio.h>
#include <string.h>
/* Определение частоты процессора в мегагерцах на
основании данных файла /proc/cpuinfo. В
многопроцессорной системе будет найдена частота
первого процессора. В случае ошибки возвращается нуль. */
float get_cpu_clock_speed() {
FILE* fр;
char buffer[1024];
size_t bytes_read;
char* match;
float clock_speed;
/* Загрузка всего файла /proc/cpuinfo в буфер. */
fp = fopen("/proc/cpuinfo", "r");
bytes_read = fread(buffer, 1, sizeof(buffer), fp);
fclose(fp);
/* Выход, если прочитать файл не удалось или буфер оказался
слишком маленьким. */
if (bytes_read == 0 || bytes_read = sizeof(buffer))
return 0;
/* Буфер завершается нулевым символом. */
buffer[bytes_read] = '';
/* Поиск строки, содержащей метку "cpu MHz". */
match = strstr(buffer, "cpu MHz");
if (match == NULL)
return 0;
/* Анализ строки и выделение из нее значения частоты
процессора. */
sscanf(match, "cpu MHz ; %f" &clock_speed);
return clock_speed;
}
int main() {
printf("CPU clock speed: %4.0f Mhzn",
get_cpu_clock_speed());
return 0;
}
He забывайте о том. что имена, семантика и формат представления элементов файловой системы /proc
меняются при обновлении ядра Linux. Программа должна вести себя корректно в случае, если нужный файл отсутствует или имеет иной формат.
- Листинг 7.1. (clock-speed.c) Определение частоты процессора путем анализа файла
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Эффективная работа с временными файлами сортировки
- 1.2. Определение количества информации. Единицы измерения количества информации
- 2.5. Разработка технического задания на проведение детального анализа рынка при работе над инновационным проектом. Основ...
- 9.1. Проблема синтаксического анализа
- Определение версии клиента
- Единое имя файла параметров InterBase
- Определение пользовательского формата числовых данных
- Параметры конфигурационного файла InterBase
- Определение целей. Построение цепочек
- 13. Зарабатываем на своих файлах: файлообменники, загружаеми получаем процент за скачивание