% ./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() : задание интервальных таймеров") |