Нейл Мэтью - Основы программирования в Linux

Тут можно читать онлайн Нейл Мэтью - Основы программирования в Linux - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-osnet, издательство «БХВ-Петербург», год 2009. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Основы программирования в Linux
  • Автор:
  • Жанр:
  • Издательство:
    «БХВ-Петербург»
  • Год:
    2009
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-9775-0289-4
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Нейл Мэтью - Основы программирования в Linux краткое содержание

Основы программирования в Linux - описание и краткое содержание, автор Нейл Мэтью, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым.

Для начинающих Linux-программистов

Основы программирования в Linux - читать онлайн бесплатно полную версию (весь текст целиком)

Основы программирования в Linux - читать книгу онлайн бесплатно, автор Нейл Мэтью
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Типы программ (из файла syslog.h) включают константу LOG_USER, применяемую для обозначения сообщения, пришедшего из приложения пользователя (по умолчанию), и константы LOG_LOCAL0, LOG_LOCAL1, ..., LOG_LOCAL7, зарезервированные для локального администратора.

В табл. 4.6 перечислены степени важности сообщений в порядке убывания приоритета.

Таблица 4.6

Приоритет Описание
LOG_EMERG Кризисная ситуация
LOG_ALERT Проблема с высоким приоритетом, например, повреждение базы данных
LOG_CRIT Критическая ошибка, например, повреждение оборудования
LOG_ERR Ошибки
LOG_WARNING Предупреждение
LOG_NOTICE Особые обстоятельства, требующие повышенного внимания
LOG_INFO Информационные сообщения
LOG_DEBUG Отладочные сообщения

В зависимости от настройки системы сообщения типа LOG_EMERмогут пересылаться всем пользователям системы, сообщения LOG_ALERTмогут отправляться по электронной почте администратору, сообщения LOG_DEBUGмогут игнорироваться, а сообщения других типов могут записываться в файл. Вы можете написать программу, которая применяет средство регистрации сообщений, просто вызывая функцию syslog, когда вы хотите создать регистрируемое сообщение.

У сообщения, создаваемого syslog, есть заголовок и тело сообщения. Заголовок создается из индикатора типа программы, формирующей сообщение, и даты и времени. Тело сообщения создается из параметра message, передаваемого функции syslog, который действует как строка formatфункции printf. Остальные аргументы syslogиспользуются в соответствии со спецификаторами преобразований в стиле функции printf, заданными в строке message. Дополнительно может применяться спецификатор %mдля включения строки сообщения об ошибке, ассоциированной с текущим значением переменной errno. Эта возможность может оказаться полезной для регистрации сообщений об ошибках.

Выполните упражнение 4.13.

Упражнение 4.13. Применение функции syslog

В этой программе осуществляется попытка открыть несуществующий файл.

#include

#include

#include

int main() {

FILE *f;

f = fopen("not_here", "r");

if (!f) syslog(LOG_ERR|LOG_USER, "oops - %m\n");

exit(0);

}

Когда вы откомпилируете и выполните программу syslog.с, то не увидите никакого вывода, но в конце файла /var/log/messages теперь содержится следующая строка:

Jun 9 09:24:50 suse103 syslog: oops — No such file or directory

Как это работает

В данной программе вы пытаетесь открыть файл, которого нет. Когда попытка заканчивается неудачно, вы вызываете функцию syslogдля записи случившегося в системный журнал.

Обратите внимание на то, что регистрируемое сообщение не указывает, какая программа вызвала средство регистрации; оно просто констатирует тот факт, что была вызвана функция syslogс сообщением. Спецификатор преобразования %mбыл заменен описанием ошибки, в данном случае сообщающим об отсутствии файла. Это гораздо полезнее, чем простой отчет, содержащий внутренний номер ошибки.

В файле syslog.h определены и другие функции, применяемые для изменения поведения средств ведения системных журналов.

К ним относятся следующие функции:

#include void closelog(void);

void openlog(const char *ident, int logopt, int facility);

int setlogmask(int maskpri);

Вы можете изменить способ представления ваших регистрируемых сообщений, вызвав функцию openlog. Это позволит задать строку ident, которая будет добавляться к вашим регистрируемым сообщениям. Вы можете применять ее для индикации программы, создавшей сообщение. Параметр facilityзаписывает текущий принятый по умолчанию тип программы, формирующей сообщение, который будет использоваться в последующих вызовах syslog. По умолчанию устанавливается значение LOG_USER. Параметр logoptнастраивает поведение будущих вызовов функции syslog. Он представляет собой результат поразрядной операции ORнулевого или большего числа параметров, приведенных в табл. 4.7.

Таблица 4.7

Параметр logopt Описание
LOG_PID Включает в сообщения идентификатор процесса, уникальный номер, выделяемый системой каждому процессу
LOG_CONS Посылает сообщения на консоль, если они не могут быть записаны
LOG_ODELAY Открывает средство регистрации сообщений при первом вызове функции syslog
LOG_NDELAY Открывает средство регистрации сообщений немедленно, не дожидаясь первого регистрируемого сообщения

Функция openlogвыделит и откроет дескриптор файла, который будет применяться для записи в программе ведения системного журнала. Вы сможете закрыть его, вызвав функцию closelog. Имейте в виду, что вам не нужно вызывать функцию openlogперед вызовом syslog, потому что последняя при необходимости самостоятельно откроет средство ведения системного журнала.

Вы можете управлять приоритетом регистрируемых вами сообщений с помощью установки маски регистрации, используя функцию setlogmask. Все будущие вызовы syslogс разными приоритетами, не заданными в маске регистрации, будут отброшены, таким образом, вы сможете, например, использовать маску для отключения сообщений типа LOG_DEBUGбез необходимости изменять тело программы.

Вы можете создать маску для регистрируемых сообщений, используя значение LOG_MASK(priority), создающее маску только для одного приоритета, или значение LOG_UPTO(priority), создающее маску для всех приоритетов вплоть до заданного.

Выполните упражнение 4.14.

Упражнение 4.14. Маска регистрации ( logmask)

В этом примере вы увидите logmaskв действии.

#include

#include

#include

#include

int main() {

int logmask;

openlog("logmask", LOG_PID|LOG_CONS, LOG_USER);

syslog(LOG_INFO, "informative message, pid = %d", getpid());

syslog(LOG_DEBUG, "debug message, should appear");

logmask = setlogmask(LOG_UPTO(LOG_NOTICE));

syslog(LOG_DEBUG, "debug message, should not appear");

exit(0);

}

Программа logmask.c ничего не выводит, но в типичной системе Linux вы увидите в файле /var/log/messages, ближе к концу, следующую строку:

Jun 9 09:28:52 suse103 logmask[19339] : informative message, pid = 19339

Файл, настроенный на получение регистрируемых сообщений об отладке (в зависимости от настройки регистрации, это чаще всего файл /var/log/debug или иногда файл /var/log/messages), должен содержать следующую строку:

Jun 9 09:28:52 susel03 logmask[19339]: debug message, should appear

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Нейл Мэтью читать все книги автора по порядку

Нейл Мэтью - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Основы программирования в Linux отзывы


Отзывы читателей о книге Основы программирования в Linux, автор: Нейл Мэтью. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x