Арнольд Роббинс - Linux программирование в примерах
- Название:Linux программирование в примерах
- Автор:
- Жанр:
- Издательство:Кудиц-Образ
- Год:2005
- Город:Москва
- ISBN:5-9579-0059-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Арнольд Роббинс - Linux программирование в примерах краткое содержание
В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи и группы, вопросы интернационализации и локализации, сортировка, поиск и многие другие. Много внимания уделено средствам отладки, доступным под GNU Linux. Все темы иллюстрируются примерами кода, взятого из V7 UNIX и GNU. Эта книга может быть полезна любому, кто интересуется программированием под Linux.
Linux программирование в примерах - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
/* Простое - предполагает -1. Если не указана COMMAND, отображает
имеющееся окружение.
Об ошибках сообщайте в . */
Вот несколько примеров вызовов команды:
$ env - myprog arg1/* Очистить окружение, запустить программу с args */
$ env - РАТН=/bin:/usr/bin myprog arg1/* Очистить окружение, добавить PATH, запустить программу */
$ env -u IFS PATH=/bin:/usr/bin myprog arg1/* Сбросить IFS, добавить PATH, запустить программу */
Код начинается со стандартной формулировки авторских прав GNU и разъясняющего комментария. Мы для краткости их опустили. (Формулировка авторского права обсуждается в Приложении С «Общедоступная лицензия GNU». Показанного ранее вывода --help
достаточно для понимания того, как работает программа.) За объявленным авторским правом и комментарием следуют подключаемые заголовочные файлы и объявления. Вызов макроса ' N_("string")
' (строка 93) предназначен для использования при локализации программного обеспечения, тема, освещенная в главе 13 «Интернационализация и локализация». Пока вы можете рассматривать его, как содержащий строковую константу.
80 #include
81 #include
82 #include
83 #include
84 #include
85
86 #include "system.h"
87 #include "error.h"
88 #include "closeout.h"
89
90 /* Официальное имя этой программы (напр., нет префикса 'g'). */
91 #define PROGRAM_NAME "env"
92
93 #define AUTHORS N_ ("Richard Mlynarik and David MacKenzie")
94
95 int putenv();
96
97 extern char **environ;
98
99 /* Имя, посредством которого эта программа была запущена. */
100 char *program_name;
101
102 static struct option const longopts[] =
103 {
104 {"ignore-environment", no_argument, NULL, 'i'},
105 {"unset", required_argument, NULL, 'u'},
106 {GETOPT_HELP_OPTION_DECL},
107 {GETOPT_VERSION_OPTION_DECL},
108 {NULL, 0, NULL, 0}
109 };
GNU Coreutils содержит большое число программ, многие из которых выполняют одни и те же общие задачи (например, анализ аргументов). Для облегчения сопровождения многие типичные идиомы были определены в виде макросов. Двумя таким макросами являются GETOPT_HELP_OPTION_DECL
и GETOPT_VERSION_OPTION
(строки 106 и 107). Вскоре мы рассмотрим их определения. Первая функция, usage()
, выводит информацию об использовании и завершает программу. Макрос _("string")
(строка 115, используется также по всей программе) также предназначен для локализации, пока также считайте его содержащим строковую константу.
111 void
112 usage(int status)
113 {
114 if (status '= 0)
115 fprintf(stderr, _("Try '%s --help' for more information.\n"),
116 program_name);
117 else
118 {
119 printf (_("\
120 Usage: %s [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]\n"),
121 program_name);
122 fputs (_("\
123 Set each NAME to VALUE in the environment and run COMMAND. \n\
124 \n\
125 -i, --ignore-environment start with an empty environment\n\
126 -u, --unset=NAME remove variable from the environment\n\
127 "), stdout);
128 fputs(HELP_OPTION_DESCRIPTION, stdout);
129 fputs(VERSION_OPTION_DESCRIPTION, stdout);
130 fputs(_("\
131 \n\
132 A mere - implies -i. If no COMMAND, print the resulting\
133 environment.\n"), stdout);
134 printf(_("\nReport bugs to
Интервал:
Закладка: