Приведем несколько строк листинга полученного в каталоге
/dev
(в разных системах могут быть выданы разные результаты)
% ./listdir /dev
directory : /dev/.
directory : /dev/..
socket : /dev/log
character device : /dev/null
regular file : /dev/MAKEDEV
fifo : /dev/initctl
character device : /dev/agpgart
...
Для
проверки этих данных можно воспользоваться командой
ls
. Флаг
– U
отменяет сортировку списка, а флаг
– a
заставляет включить в список записи текущего (
.
) и родительского (
..
) каталогов.
% ls -lua /dev total 124
drwxr-xr-x 7 root root 36864 Feb 1 15:14 .
drwxr-xr-x 22 root root 4096 Oct 11 16:39 ..
srw-rw-rw- 1 root root 0 Dec 18 01:31 log
crw-rw-rw- 1 root root 1, 3 May 5 1998 null
– rwxr-xr-x 1 root root 26689 Mar 2 2000 MAKEDEV
prw------- 1 root root 0 Dec 11 18:37 initctl
crw-rw-r-- 1 root root 10, 175 Feb 3 2000 agpgart
Первый символ каждой строки определяет тип элемента каталога.
Приложение В
Таблица сигналов
В табл. В.1 перечислены сигналы, которые чаще всего приходится обрабатывать в Linux-программах. Некоторые сигналы имеют разные интерпретации в зависимости от того, где они были получены.
Указанные имена сигналов определены в виде макроконстант препроцессора. Чтобы иметь возможность сослаться на них в программе необходимо подключить файл
<signal.h>
. Реальное определение сигналов дано в файле
/usr/sys/signum.h
, который подключается к файлу
<signal.h>
.
Для получения полного списка сигналов, поддерживаемых в Linux, необходимо выполнить такую команду:
% man 7 signal
Таблица В.1. Сигналы ОС Linux
Название
Описание
SIGHUP
Linux посылает этот сигнал, когда происходит отключение от терминала. Многие программы применяют этот сигнал в совершенно иных целях: он служит указанием программе повторно прочитать свой файл конфигурации
SIGINT
Linux посылает процессу этот сигнал, когда пользователь пытается завершить процесс нажатием клавиш <Ctrl+C>
SIGILL
Процесс получает этот сигнал при попытке выполнить недопустимую инструкцию. Это может означать повреждение стека программы
SIGABRT
Этот сигнал посылается функцией
abort
SIGFPE
По течение этого сигнала означает, что процесс выполнил недопустимую операцию с плавающей запятой. В зависимости от конфигурации центрального процессора результатом операции может стать специальное нечисловое значение, например
inf
(бесконечность) или
NaN
(не число), а не сигнал
SIGFPE
SIGKILL
Этот сигнал приводит к немедленному завершению процесса и не может быть перехвачен
SIGUSR1
Этот сигнал зарезервирован для прикладного использования
SIGUSR2
Этот сигнал зарезервирован для прикладного использования
SIGSEGV
Этот сигнал означает, что программа выполнила недопустимое обращение к памяти. Возможно, указанный адрес находится за пределами
адресного пространства процесса или процессу запрещен доступ к этому участку памяти
SIGPIPE
Этот сигнал означает, что программа обратилась к разрушенному потоку данных, например к сокету, который был закрыт на противоположной стороне
SIGALRM
Доставка этого сигнала планируется функциями
alarm
и
setitimer
(см. раздел 8.13 "Функция setitimer: задание интервальных таймеров")
SIGTERM
Этот сигнал является запросом на завершение процесса и посылается командой
kill
по умолчанию
SIGCHLD
Linux посылает процессу этот сигнал при завершении одного из дочерних процессов (см. раздел 3.4.4, "Асинхронное удаление дочерних процессов")
SIGXCPU
Linux посылает процессу этот сигнал в случае превышения разрешенного времени доступа к центральному процессору (см. раздел 8.5, "Функции getrlimit и setrlimit: лимиты ресурсов")
SIGVTALRM
Доставка этого сигнала планируется функцией
setitimer
(см. раздел 8.13, "Функция
setitimer
: задание интервальных таймеров")
Приложение Г
Internet-ресурсы
В этом приложении перечислен ряд Web-узлов, где можно найти информацию о программировании Linux-систем.
Г.1. Общая информация
■
http://www.advancedlinuxprogramming.com
. Это Web-узел данной книги. Здесь можно загрузить текст книги в электронном виде вместе с исходными текстами программ, найти ссылки на другие ресурсы и получить дополнительную информацию о программировании в Linux.
■
http://www.linuxdoc.org
. Это Web-узел проекта Linux Documentation Project. Здесь находится хранилище всевозможной документации, а также FAQ-архивов.
Г.2. Информация о программном обеспечении GNU/Linux
■
http://www.gnu.org
. Это Web-узел проекта GNU Project. Здесь можно загрузить всевозможные бесплатно распространяемые программы. Среди них и GNU-библиотека языка С, содержащая многие из описанных в данной книге функций. Здесь же приведена информация о том. как внести свой вклад в развитие системы GNU/Linux, написав программный код и документацию либо использовав бесплатное программное обеспечение.
■
http://www.kernel.org
. Это основной Web-узел для распространения исходных кодов ядра Linux и лучшее место для поиска ответов на самые сложные вопросы о том, как работает Linux. В разделе "Documentation" приведена информация о структуре ядра системы.
■
http://www.linuxhq.com
. Здесь также распространяются исходные коды ядра Linux наряду с "заплатами" и прочей информацией.
■
http://gcc.gnu.org
. Это Web-узел коллекции GNU-компидяторов (GCC). В нее входят компиляторы языков С, C++, Objective C, Java, Chill и Fortran.
■
http://www.gnome.org
и
http://www.kde.org
. Это Web-узлы двух наиболее популярных графических оболочек Linux: Gnome и KDE. Они понадобятся тем, кому необходимо разрабатывать приложения с пользовательским интерфейсом.
Г.3. Другие ресурсы
■
http://developer.intel.com
. Здесь содержится информация о процессорах Intel, включая архитектуру x86 (IA32). Отметим очень полезные справочники встроенных ассемблерных инструкций.
■
http://www.amd.com
. Здесь представлена аналогичная информация о процессорах AMD.
■
http://freshmeat.net
. Здесь находится список программ с открытыми кодами, в основном для платформы GNU/Linux. Это одно из лучших мест, где можно оперативно узнавать о программных новинках для Linux, начиная от базовых системных компонентов и заканчивая специализированными приложениями.
■
http://www.linuxsecurity.com
. Здесь содержится информация о программах, обеспечивающих безопасность Linux-систем. Этот Web-узел будет интересен пользователи, системным администраторам и разработчикам.