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

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

Жанры

Программирование для Linux. Профессиональный подход

Самьюэл Алекс

Шрифт:

sizeof(entry_path) — path_len);

/* Определяем тип элемента. */

type = get_file_type(entry_path);

/* Отображаем собранную информацию. */

printf("%-18s: %s\n", type, entry_path);

 }

 /* Конец работы. */

 closedir(dir);

 return 0;

}

Приведем несколько строк листинга полученного в каталоге

/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-узел будет интересен пользователи, системным администраторам и разработчикам.

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

Катастройка, Повесть о перестройке в Партграде

Зиновьев Александр Александрович
Проза:
русская классическая проза
6.25
рейтинг книги
Катастройка, Повесть о перестройке в Партграде

Неучтенный элемент. Том 4

NikL
4. Антимаг. Вне системы
Фантастика:
фэнтези
5.25
рейтинг книги
Неучтенный элемент. Том 4

Дневники 1932-1947 гг

Бронтман Лазарь Константинович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Дневники 1932-1947 гг

Том 3. Лица

Замятин Евгений Иванович
3. Собрание сочинений в пяти томах
Проза:
русская классическая проза
5.00
рейтинг книги
Том 3. Лица

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Зависимость. Трилогия

Freedomni .
5.00
рейтинг книги
Зависимость. Трилогия

Политэкономия индустриализма - связь экономической модели и научной картины мира

Кара-Мурза Сергей Георгиевич
Научно-образовательная:
история
5.00
рейтинг книги
Политэкономия индустриализма - связь экономической модели и научной картины мира

Неудержимый. Книга XII

Боярский Андрей
12. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XII

Как сделать карьеру, или Психология общения на работе

Лемайте Кристина
Деловая литература:
корпоративная культура
5.00
рейтинг книги
Как сделать карьеру, или Психология общения на работе

На плахе Таганки

Золотухин Валерий Сергеевич
Документальная литература:
биографии и мемуары
6.80
рейтинг книги
На плахе Таганки

Неудержимый. Книга IX

Боярский Андрей
9. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.25
рейтинг книги
Неудержимый. Книга IX

Инженер Петра Великого 4

Гросов Виктор
4. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Инженер Петра Великого 4

Ловец мудрости

A.E. Giggle
Фантастика:
фэнтези
5.00
рейтинг книги
Ловец мудрости

Последний Паладин

Саваровский Роман
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.25
рейтинг книги
Последний Паладин