Читаем Основы программирования в Linux полностью

Функция perror также превращает текущую ошибку в виде, представленном в переменной errno, в строку и выводит ее в стандартный поток ошибок. Ей предшествует сообщение, заданное в строке s (если указатель не равен NULL), за которым следуют двоеточие и пробел.

Далее приведена синтаксическая запись функции:

#include

void perror(const char *s);

Например, вызов

perror("program");

может дать следующий результат в стандартном потоке ошибок:

program: Too many open files

<p>Файловая система procfs</p>

Ранее в этой главе мы уже писали о том, что ОС Linux обрабатывает многие вещи как файлы, и в файловой системе есть ряд элементов для аппаратных устройств. Эти файлы /dev применяются для доступа к оборудованию особыми методами с помощью низкоуровневых системных вызовов.

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

В прошлом для связи с драйверами устройств применялись утилиты общего назначения. Например, hdparm использовалась для настройки некоторых параметров диска, a ifconfig могла сообщить сетевую статистику. В недавнем прошлом появилась тенденция, направленная на обеспечение более подходящего способа доступа к информации драйвера и, как расширение, включающая взаимодействие с различными элементами ядра Linux.

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

Набор файлов в каталоге /proc меняется от системы к системе, и с каждым новым выпуском Linux появляются новые файлы, дополнительные драйверы и средства поддержки файловой системы procfs. В этом разделе мы рассмотрим некоторые из самых широко распространенных файлов и кратко обсудим их применение.

В перечень каталога /proc на компьютере, использовавшемся для написания этой главы, включены следующие элементы:

1/     10514/ 20254/ 6/    9057/ 9623/     ide/       mtrr

10359/ 10524/ 29/    698/  9089/ 9638/     interrupts net/

10360/ 10530/ 983/   699/  9118/ acpi/     iomem      partitions

10381/ 10539/ 3/     710/  9119/ asound/   ioports    scsi/

10438/ 10541/ 30/    711/  9120/ buddyinfo irq/       self@

10441/ 10555/ 3069/  742/  9138/ bus/      kallsyms   slabinfo

10442/ 10688/ 3098/  7808/ 9151/ cmdline   kcore      splash

10478/ 10689/ 3099/  7813/ 92/   config.gz keys       stat

10479/ 10784/ 31/    8357/ 9288/ cpuinfo   key-users  swaps

10482/ 113/   3170/  8371/ 93/   crypto    kmsg       sys/

10484/ 115/   3171/  840/  9355/ devices   loadavg    sysrq-trigger

10486/ 116/   3177/  8505/ 9407/ diskstats locks      sysvipc/

10495/ 1167/  32288/ 8543/ 9457/ dma       mdstat     tty/

10497/ 1168/  3241/  8547/ 9479/ driver/   meminfo    uptime

Во многих случаях файлы могут только читаться и дают информацию о состоянии. Например, /proc/cpuinfo предоставляет сведения о доступных процессорах:

$ cat /proc/cpuinfo

processor    : 0

vendor_id     : GenuineIntel

cpu family    : 15

model         : 2

model name    : Intel(R) Pentium(R) 4 CPU 2.66GHz

stepping      : 8

cpu MHz       : 2665.923

cache size    : 512 KB

fdiv_bug      : no

hlt_bug       : no

f00f_bug      : no

coma_bug      : no

fpu           : yes

fpu_exception : yes

cpuid level   : 2

wp            : yes

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

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

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT