Вход/Регистрация
Основы программирования в 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

  • Читать дальше
  • 1
  • ...
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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