Марк Митчелл - Программирование для Linux. Профессиональный подход

Здесь есть возможность читать онлайн «Марк Митчелл - Программирование для Linux. Профессиональный подход» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2002, ISBN: 2002, Издательство: Вильямс, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программирование для Linux. Профессиональный подход: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программирование для Linux. Профессиональный подход»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Данная книга в основном посвящена программированию в среде GNU/Linux. Авторы применяют обучающий подход, последовательно излагая самые важные концепции и методики использования расширенных возможностей системы GNU/Linux в прикладных программах. Читатели научатся писать программы, к интерфейсу которых привыкли пользователи Linux; освоят такие технологии, как многозадачность, многопотоковое программирование, межзадачное взаимодействие и взаимодействие с аппаратными устройствами; смогут улучшить свои программы, сделав их быстрее, надежнее и безопаснее; поймут особенности системы GNU/Linux, ее ограничения, дополнительные возможности и специфические соглашения.
Книга предназначена для программистов, уже знакомых с языком С и имеющих базовый опыт работы в GNU/Linux.

Программирование для Linux. Профессиональный подход — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программирование для Linux. Профессиональный подход», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

При обращении к файлу /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() {

printf("CPU clock speed: %4.0f Mhz\n",

get_cpu_clock_speed());

return 0;

}

He забывайте о том. что имена, семантика и формат представления элементов файловой системы /procменяются при обновлении ядра Linux. Программа должна вести себя корректно в случае, если нужный файл отсутствует или имеет иной формат.

7.2. Каталоги процессов

Файловая система /procсодержит по одному каталогу для каждого выполняющегося в данный момент процесса. Именем каталога является идентификатор процесса. [22] В некоторых UNIX-системах эти идентификаторы дополняются нулями, в Linux — нет. Каталоги появляются и исчезают динамически по мере запуска и завершения процессов. В каждом каталоге имеются файлы, предоставляющие доступ к различной информации о процессе. Собственно говоря, на основании этих каталогов файловая система /procи получила свое имя.

В каталогах процессов находятся следующие файлы.

cmdline. Содержит список аргументов процесса; описан в разделе 7.2.2, "Список аргументов процесса".

cwd. Является символической ссылкой на текущий рабочий каталог процесса (задаётся, к примеру, функцией chdir()).

environ. Содержит переменные среды процесса; описан в разделе 7.2.3, "Переменные среды процесса".

exe. Является символической ссылкой на исполняемый файл процесса; описан в разделе 7.2.4. "Исполняемый файл процесса".

fd. Является подкаталогом, в котором содержатся ссылки на файлы, открытые процессом: описан в разделе 7.2.5, "Дескрипторы файлов процесса".

maps. Содержит информацию о файлах, отображаемых в адресном пространстве процесса. О механизме отображения файлов в памяти рассказывалось в главе 5. "Взаимодействие процессов". Для каждого такого файла выводится соответствующий диапазон адресов в адресном пространстве процесса, права доступа, имя файла и пр. К числу отображаемых файлов относятся исполняемый файл процесса, а также загруженные библиотеки.

root. Является символической ссылкой на корневой каталог процесса (обычно это /). Корневой каталог можно сменить с помощью команды chrootили функции chroot().

stat. Содержит статистическую информацию о процессе. Эти же данные представлены в файле status, но здесь они находятся в неотформатированном виде и записаны в одну строку. Такой формат труден для восприятия, зато проще в плане синтаксического анализа.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программирование для Linux. Профессиональный подход»

Представляем Вашему вниманию похожие книги на «Программирование для Linux. Профессиональный подход» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Программирование для Linux. Профессиональный подход»

Обсуждение, отзывы о книге «Программирование для Linux. Профессиональный подход» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x