My-library.info
Все категории

Linux программирование в примерах - Роббинс Арнольд

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Linux программирование в примерах - Роббинс Арнольд. Жанр: Интернет год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Linux программирование в примерах
Дата добавления:
17 сентябрь 2020
Количество просмотров:
204
Читать онлайн
Linux программирование в примерах - Роббинс Арнольд

Linux программирование в примерах - Роббинс Арнольд краткое содержание

Linux программирование в примерах - Роббинс Арнольд - описание и краткое содержание, автор Роббинс Арнольд, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info

В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи и группы, вопросы интернационализации и локализации, сортировка, поиск и многие другие. Много внимания уделено средствам отладки, доступным под GNU Linux. Все темы иллюстрируются примерами кода, взятого из V7 UNIX и GNU. Эта книга может быть полезна любому, кто интересуется программированием под Linux.

 

Linux программирование в примерах читать онлайн бесплатно

Linux программирование в примерах - читать книгу онлайн бесплатно, автор Роббинс Арнольд
Linux программирование в примерах - img_1.png

Рис. 2.1. Компоненты командной строки

Таким образом,

patfile
является не файлом данных для поиска, а предназначен для использования
fgrep
в определении списка строк, которые нужно искать.

2.1.1. Соглашения POSIX

Стандарт POSIX описывает ряд соглашений, которых придерживаются удовлетворяющие стандарту программы. Никто от вас не требует, чтобы ваши программы удовлетворяли этим стандартам, но это хорошая мысль сделать так: пользователи Linux и Unix по всему миру понимают и используют эти соглашения, и если вы не будете им следовать, ваши пользователи будут несчастны. (Или у вас вообще не будет пользователей!) Более того, функции, которые мы обсуждаем далее в этой главе, освобождают вас от бремени ручной реализации этих соглашений для каждой программы, которую вы пишете. Вот эти правила, перефразированные из стандарта:

1. В имени программы должно быть не менее двух и не более девяти символов.

2. Имена программ должны содержать лишь строчные символы и цифры.

3. Имя опции должно быть простым буквенно-цифровым символом. Опции с множеством цифр не должны допускаться. Для производителей, реализующих утилиты POSIX, опция

-W
зарезервирована для специфичных для производителя опций.

4. Все опции должны начинаться с символа '

-
'.

5. Для опций, не требующих аргументов, должно быть возможно объединение нескольких опций после единственного символа '

-
'. (Например, '
foo -a -b -c
' и '
foo -abc
' должны интерпретироваться одинаково.)

6. Когда опции все же требуется аргумент, он должен быть отделен от опции пробелом (например, '

fgrep -f patfile
').

Однако, стандарт допускает историческую практику, при которой иногда опция и ее операнд могут находиться в одной строке: '

fgrep -fpatfile
'. На практике функции
getopt()
и
getopt_long()
интерпретируют '
-fpatfile
' как '
-f patfile
', а не как '
-f -p -a -t ...
'.

7. Аргументы опций не должны быть необязательными.

Это означает, что если в документации программы указано, что опции требуется аргумент, этот аргумент должен присутствовать всегда, иначе программа потерпит неудачу GNU

getopt()
все же предусматривает необязательные аргументы опций, поскольку иногда они полезны

8. Если опция принимает аргумент, который может иметь несколько значений, программа должна получать этот аргумент в виде одной строки со значениями, разделенными запятыми или разделителем.

Например, предположим, что гипотетической программе

myprog
требуется список пользователей для опции
-u
. Далее она может быть вызвана одним из двух способов:

myprog -u "arnold,joe,jane" /* Разделение запятыми */

myprog -u "arnold joe jane" /* Разделение пробелами */

В таком случае вы должны самостоятельно отделить и обработать каждое значение (т.е. здесь нет стандартной процедуры), но ручная реализация обычно проста.

9. Опции должны находиться в командной строке первыми, перед операндами. Версии

getopt()
Unix проводят в жизнь это соглашение. GNU
getopt()
по умолчанию этого не делает, хотя вы можете настроить его на это.

10. Специальный аргумент '

--
' указывает на окончание всех опций. Все последующие аргументы командной строки рассматриваются как операнды, даже если они начинаются с черточки.

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

myprog -u arnold -u jane
' то же самое, что и '
myprog -u "arnold, jane"
'. (Вам придется осуществить это самостоятельно;
getopt()
вам не поможет.)

12. Нормально, когда порядок аргументов имеет для программы значение. Каждая программа должна документировать такие вещи.

13. Программы, читающие или записывающие именованные файлы, должны трактовать единственный аргумент '

-
' как означающий стандартный ввод или стандартный вывод, в зависимости от того, что подходит программе.

Отметим, что многие стандартные программы не следуют всем указанным соглашениям. Главной причиной является историческая совместимость; многие такие программы предшествовали систематизации этих соглашений.

2.1.2. Длинные опции GNU

Как мы видели в разделе 1.4.2 «Поведение программ», программам GNU рекомендуется использовать длинные опции в форме

--help
,
--verbose
и т.д. Такие опции, поскольку они начинаются с '
--
', не конфликтуют с соглашениями POSIX. Их также легче запомнить, и они предоставляют возможность последовательности среди всех утилит GNU. (Например,
--help
является везде одним и тем же, в отличие от
-h
для «help»,
-i
для «information» и т.д.) Длинные опции GNU имеют свои собственные соглашения, реализованные в функции
getopt_long()
:

1. У программ, реализующих инструменты POSIX, каждая короткая опция (один символ) должна иметь также свой вариант в виде длинной опции.

2. Дополнительные специфические для GNU опции не нуждаются в соответствующей короткой опции, но мы рекомендуем это сделать.

3. Длинную опцию можно сократить до кратчайшей строки, которая остается уникальной. Например, если есть две опции

--verbose
и
--verbatim
, самыми короткими сокращениями будут
--verbo
и
--verba
.

4. Аргументы опции отделяются от длинных опций либо разделителем, либо символом

=
. Например,
--sourcefile=/some/file
или
--sourcefile /some/file
.

5. Опции и аргументы могут быть заинтересованы в операндах командной строки,

getopt_long()
переставляет аргументы таким образом, что сначала обрабатываются все опции, а затем все операнды доступны последовательно. (Такое поведение можно запретить.)

6. Аргументы опций могут быть необязательными. Для таких опций считается, что аргумент присутствует, если он находится в одной строке с опцией. Это работает лишь для коротких опций. Например, если -х такая опция и дана строка '

foo -хYANKEES -y
', аргументом
является '
YANKEES
'. Для '
foo -х -y
' у
нет аргументов.


Роббинс Арнольд читать все книги автора по порядку

Роббинс Арнольд - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


Linux программирование в примерах отзывы

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

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.