Чтение онлайн

на главную - закладки

Жанры

Основы программирования в Linux
Шрифт:

strerror

Функция

strerror
преобразует номер ошибки в строку, описывающую тип возникшей ошибки. Она может быть полезна для регистрации условий, вызывающих ошибку.

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

#include <string.h>

char *strerror(int errnum);

perror

Функция

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

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

#include <stdio.h>

void perror(const char *s);

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

perror("program");

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

program: Too many open files

Файловая система procfs

Ранее в этой главе мы уже писали о том, что ОС 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

flags : fpu vme de pse tsc msr рае mce cx8 apic sep mtrr pge mca cmov

pat pse36 clflush dts acpi mmx fxsr sse sse2 ss up

bogomips : 5413.47

clflush size : 64

Файлы /proc/meminfo и /рroc/version предоставляют данные об использовании оперативной памяти и версии ядра соответственно:

Поделиться:
Популярные книги

Франкенштейн: Антология

Шелли Мэри
1. Лучшее
Фантастика:
социально-философская фантастика
научная фантастика
ужасы и мистика
7.43
рейтинг книги
Франкенштейн: Антология

Суперфрикономика

Левитт Стивен Д.
Научно-образовательная:
прочая научная литература
6.25
рейтинг книги
Суперфрикономика

Симеон Гордый

Балашов Дмитрий Михайлович
4. Государи московские
Научно-образовательная:
история
7.89
рейтинг книги
Симеон Гордый

Вечный. Книга VI

Рокотов Алексей
6. Вечный
Фантастика:
рпг
фэнтези
5.00
рейтинг книги
Вечный. Книга VI

Замок (сборник)

Вилсон Фрэнсис Пол
Мастера остросюжетного романа
Фантастика:
мистика
5.00
рейтинг книги
Замок (сборник)

Кодекс Крови. Книга ХVIII

Борзых М.
18. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.25
рейтинг книги
Кодекс Крови. Книга ХVIII

Религия и этика в изречениях и цитатах. Справочник

Душенко Константин Васильевич
Религия и эзотерика:
религия
5.00
рейтинг книги
Религия и этика в изречениях и цитатах. Справочник

Сочинения

Брюсов Валерий Яковлевич
Проза:
русская классическая проза
5.00
рейтинг книги
Сочинения

100 великих войн

Соколов Борис Вадимович
100 великих
Справочная литература:
энциклопедии
6.40
рейтинг книги
100 великих войн

Арбан Саеш. Трилогия

Малицкий Сергей Вацлавович
50. В одном томе
Фантастика:
фэнтези
8.17
рейтинг книги
Арбан Саеш. Трилогия

Белый ферзь

Измайлов Андрей
Детективы:
прочие детективы
боевики
5.00
рейтинг книги
Белый ферзь

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.50
рейтинг книги
Вечный. Книга I

Реликварий

Престон Дуглас
2. Пендергаст
Фантастика:
ужасы и мистика
7.00
рейтинг книги
Реликварий

Нью-Йорк

Резерфорд Эдвард
The Big Book
Проза:
историческая проза
6.00
рейтинг книги
Нью-Йорк