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

Что находится в файле /proc/version? Он содержит строку, описывающую номер версии ядра Linux. Сюда входит информация, возвращаемая системным вызовом uname() (описан в разделе 8.15, "Функция uname()"), а также номер версии компилятора, с помощью которого было создано ядро. Чтение из файла /proc/version осуществляется самым обычным образом, например с помощью команды cat:

% cat /proc/version

Linux version 2.2.14-5.0 ([email protected])

(gcc version egcs-2.91.66 19990314/Linux

(egcs-1.1.2 release)) #1 Tue Mar 7 21:07:39 EST 2000

Многие элементы файловой системы /proc описаны на man-странице proc (раздел 5). В этой главе будут рассмотрены те из них, которые чаще всего используются программистами и полезны при отладке.

Читатели, которых интересуют детали функционирования файловой системы /proc, могут просмотреть ее исходные коды в каталоге /usr/src/linux/fs/proc/.

<p>7.1. Извлечение информации из файловой системы /proc</p>

Большинство элементов файловой системы /proc выдает информацию в отформатированном виде. Например, файл /proc/cpuinfo содержит сведения о процессоре (или процессорах, если это многопроцессорный компьютер). Выходная информация представляется в виде таблицы значений, по одному на строку. Каждое значение сопровождается символическим идентификатором.

При обращении к файлу /proc/cpuinfo будет выдана примерно следующая информация:

% cat /proc/cpuinfo

processor     : 0

vendor_id     : GenuineIntel

cpu family    : 6

model         : 5

model name    : Pentium II (Deschutes)

stepping      : 2

cpu MHz       : 400.913520

cache size    : 512 KB

fdiv_bug      : no

hlt_bug       : no

sep_bug       : no

f00f_bug      : no

coma_bug      : no

fpu           : yes

fpu_exception : yes

cpuid level   : 2

wp            : yes

flags         : fpu vme de pse tsc msr рае mce cx8 apic sep

mtrr pge mce cmov pat pse36 mmx fxsr

bogomips      : 399.77

Интерпретация некоторых значений даны в разделе 7.3.1. "Центральный процессор". Если нужно получить одно из этих значений в программе, проще всего загрузить файл в память и просканировать его функцией sscanf(). В листинге 7.1 показано, как это сделать. В программе имеется функция get_cpu_clock_speed(), которая загружает файл /proc/cpuinfo и определят частоту процессора.

Листинг 7.1. (clock-speed.c) Определение частоты процессора путем анализа файла /proc/cpuinfo

#include

#include

/* Определение частоты процессора в мегагерцах на

   основании данных файла /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] = '\0';

 /* Поиск строки, содержащей метку "cpu MHz". */

 match = strstr(buffer, "cpu MHz");

 if (match == NULL)

  return 0;

 /* Анализ строки и выделение из нее значения частоты

    процессора. */

 sscanf(match, "cpu MHz ; %f" &clock_speed);

 return clock_speed;

}

int main() {

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных