Майкл Джонсон - Разработка приложений в среде Linux. Второе издание

Здесь есть возможность читать онлайн «Майкл Джонсон - Разработка приложений в среде Linux. Второе издание» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: Вильямс, Жанр: ОС и Сети, Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Разработка приложений в среде Linux. Второе издание: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Разработка приложений в среде Linux. Второе издание»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет собой отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из других операционных систем. Подробно рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование свободно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Изобилие хорошо документированных примеров кода помогает лучше усвоить особенности программирования в Linux.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.

Разработка приложений в среде Linux. Второе издание — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Разработка приложений в среде Linux. Второе издание», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

39:

40: if (reason == POPT_CALLBACK_REASON_PRE) {

41: p->height = 640;

42: p->width = 480;

43: p->fg = "white";

44: p->bg = "black";

45: } else if (reason == POPT_CALLBACK_REASON_POST) {

46: printf("используется высота %d ширина %d передний план %s фон %s\n",

47: p->height, p->width, p->fg, p->bg);

48:

49: } else {

50: switch (opt->shortName) {

51: case 'h': p->height = strtol(arg, &chptr, 10); break;

52: case 'w': p->width = strtol(arg, &chptr, 10); break;

53: case 'f' : p->fg = (char *) arg; break;

54: case 'b': p->bg = (char *) arg; break;

55: }

56:

57: if (chptr && *chptr) {

58: fprintf(stderr, "для %s ожидался числовой аргумент\n",

59: opt->longName);

60: exit(1);

61: }

62: }

63: }

64:

Программа, для которой необходимо обеспечить эти аргументы командной строки, должна включать одну дополнительную строку в своей таблице popt. Обычно этой строкой является макрос, задаваемый в заголовочном файле (подобно тому, как реализуется POPT_AUTOHELP), но в целях упрощения в данном примере мы просто явным образом покажем эту строку.

1: /* popt-nest.c */

2:

3: #include

4:

5: /* Обычно это объявление осуществляется в заголовочном файле */

6: extern struct poptOption libTable[];

7:

8: int main(int argc, const char * argv[]) {

9: poptContext optCon;

10: int rc;

11: struct poptOption options[] = {

12: { "app1", '\0', POPT_ARG_NONE, NULL, '\0' },

13: { NULL, '\0', POPT_ARG_INCLUDE_TABLE, libTable,

14: '\0', "Nested:", }

15: POPT_AUTOHELP

16: { NULL, '\0', POPT_ARG_NONE, NULL, '\0' }

17: };

18:

19: optCon = poptGetContext("popt-nest", argc, argv, options, 0);

20:

21: if ((rc = poptGetNextOpt (optCon)) < -1) {

22: fprintf(stderr, "%s: %s\n",

23: poptBadOption(optCon, POPT_BADOPTION_NOALIAS),

24: poptStrerror(rc));

25: return 1;

26: }

27:

28: return 0;

29: }

26.4. Обработка ошибок

Каждая из функций popt, которая может возвращать ошибки, возвращает целочисленные значения. В случае возникновения ошибки возвращается отрицательный код. В табл. 26.2 перечислены коды возможных ошибок. После таблицы дается подробное обсуждение каждой ошибки.

Таблица 26.2. Коды ошибок popt

Код ошибки Описание
POPT_ERROR_NOARG Отсутствует аргумент для данного параметра.
POPT_ERROR_BADOPT Невозможно проанализировать синтаксис аргумента параметра.
POPT_ERROR_OPTSTOODEEP Слишком глубокое вложение замещений имени параметра.
POPT_ERROR_BADQUOTE Несоответствие кавычек.
POPT_ERROR_BADNUMBER Невозможно преобразовать параметр в число.
POPT_ERROR_OVERFLOW Данное число слишком большое или слишком маленькое.
POPT_ERROR_NOARG Параметр, для которого требуется аргумент, был определен в командной строке, однако аргумент не был предоставлен. Эта ошибка может быть возвращена только функцией poptGetNextOpt().
POPT_ERROR_BADOPT Параметр был определен в массиве argv, однако его нет в таблице параметров. Эта ошибка может быть возвращена только функцией poptGetNextOpt().
POPT_ERROR_OPTSTOODEEP Совокупность замещений имени параметра имеет большую глубину вложений. На данный момент popt отслеживает параметры только до 10 уровня, чтобы избежать возникновения бесконечной рекурсии. Эту ошибку возвращает только функция poptGetNextOpt().
POPT_ERROR_BADQUOTE В строке, прошедшей синтаксический анализ, было обнаружено несоответствие кавычек (например, была обнаружена только одна одинарная кавычка). Эту ошибку могут возвращать функции poptParseArgvString(), poptReadConfigFile()и poptReadDefaultConfig().
POPT_ERROR_BADNUMBER Преобразование строки в число ( intили long) не было выполнено вследствие того, что строка содержит нецифровые символы. Эта ошибка возникает в том случае, когда функция poptGetNextOpt()обрабатывает аргумент типа РOРТ_ARG_INTили POPT_ARG_LONG.
POPT_ERROR_OVERFLOW Преобразование из строки в число не было выполнено вследствие того, что число было слишком большим или слишком маленьким. Подобно ошибке POPT_ERROR_BADNUMBER, эта ошибка может возникнуть только в том случае, если функция poptGetNextOpt()обрабатывает аргумент типа РОРТ_ARG_INTили POPT_ARG_LONG.
POPT_ERROR_ERRNO Системный вызов был возвращен вместе с ошибкой, а errnoдо сих пор содержит ошибку из системного вызова. Эту ошибку могут возвращать функции poptReadConfigFile()и poptReadDefaultConfig().

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

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

Интервал:

Закладка:

Сделать

Похожие книги на «Разработка приложений в среде Linux. Второе издание»

Представляем Вашему вниманию похожие книги на «Разработка приложений в среде Linux. Второе издание» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Геше Джампа Тинлей - Лоджонг (второе издание)
Геше Джампа Тинлей
Алексей Филатов - Люди «А». Второе издание
Алексей Филатов
Отзывы о книге «Разработка приложений в среде Linux. Второе издание»

Обсуждение, отзывы о книге «Разработка приложений в среде Linux. Второе издание» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x