Linux программирование в примерах
Шрифт:
Строки 174–179 переносят существующие переменные в новую копию окружения. В глобальную переменную
Строки 181–184 удаляют переменные окружения, указанные в опции
После опций в командной строке помещаются новые или замещающие переменные окружения. Строки 189–190 продолжают сканирование командной строки, отыскивая установки переменных окружения в виде '
По достижении строки 192, если в командной строке ничего не осталось, предполагается, что
Если остались аргументы, они представляют имя команды, которую нужно вызвать, и аргументы для передачи этой новой команде. Это делается с помощью системного вызова
Значения кода завершения
2.5. Резюме
• Программы на С получают аргументы своей командной строки через параметры
• Окружение представляет собой набор пар '
Упражнения
1. Предположим, что программа принимает опции
2. Реализуйте
3. Добавьте
4. Распечатайте и прочтите файлы GNU
5. Напишите программу, которая объявляет как
6. Разбор аргументов командной строки и опций является тем колесом, которое многие люди не могут не изобретать вновь. Вы можете захотеть познакомиться с различными анализирующими аргументы пакетами, помимо
• библиотека анализа аргументов Plan 9 From Bell Labs arg(2) [31] ,
• Argp [32] ,
• Argv [33] ,
31
32
33
• Autoopts [34] ,
• GNU Gengetopt [35] ,
• Opt [36] ,
• Popt [37] . См. также справочную страницу popt(3) системы GNU/Linux.
7. Дополнительный балл, почему компилятор С не может полностью игнорировать ключевое слово register? Подсказка: какие действия невозможно совершать с регистровой переменной?
34
35
36
37
Глава 3
Управление памятью на уровне пользователя
Без памяти для хранения данных программа не может выполнить никакую работу (Или, скорее, невозможно выполнить никакую полезную работу.) Реальные программы не могут позволить себе полагаться на буферы и массивы структур данных фиксированного размера. Они должны быть способны обрабатывать вводимые данные различных размеров, от незначительных до больших. Это, в свою очередь, ведет к использованию динамически выделяемой памяти — памяти, выделяемой в ходе исполнения, а не при компиляции. Вот как вводится в действие принцип GNU «никаких произвольных ограничений».
Поскольку динамически выделяемая память является основным строительным блоком для реальных программ, мы рассмотрим этот вопрос в начале, до рассмотрения всего остального. Наше обсуждение фокусируется на рассмотрении процесса и его памяти исключительно на уровне пользователя; оно не имеет ничего общего с архитектурой процессора.
3.1. Адресное пространство Linux/Unix
В качестве рабочего определения мы приняли, что процесс является запушенной программой. Это означает, что операционная система загрузила исполняемый файл для этой программы в память, сделала доступными аргументы командной строки и переменные окружения и запустила ее. Процесс имеет пять выделенных для него концептуально различных областей памяти:
Гвардия. (Дилогия)
65. В одном томе
Фантастика:
научная фантастика
рейтинг книги
Я все еще царь. Книга XXXI
31. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Латино-Иерусалимское королевство
История крестовых походов
Научно-образовательная:
история
рейтинг книги
Академия
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
рейтинг книги
12
рейтинг книги
3ds Max 2008
Видеосамоучитель
Компьютеры и Интернет:
программное обеспечение
рейтинг книги
Неудержимый. Книга VI
6. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Попала, или Кто кого
Любовные романы:
современные любовные романы
рейтинг книги
Управленческая элита. Как мы ее отбираем и готовим
Деловая литература:
управление, подбор персонала
рейтинг книги
Том 14. Критические статьи, очерки, письма
14. Собрание сочинений
Документальная литература:
критика
публицистика
рейтинг книги
Философия и культура
Научно-образовательная:
философия
рейтинг книги
В этом мире еще можно удивляться
Любовные романы:
любовно-фантастические романы
рейтинг книги
Газлайтер. Том 18
18. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Шум и ярость
Проза:
классическая проза
рейтинг книги