Основы программирования в Linux
Шрифт:
В главе 13 вы встретитесь с еще одним средством совместного использования памяти — разделяемой памятью System V.
Резюме
В этой главе вы увидели, как ОС Linux обеспечивает прямой доступ к файлам и устройствам, как на этих низкоуровневых функциях строятся библиотечные функции, предоставляющие гибкие решения программных проблем. В результате вы смогли написать довольно мощную процедуру просмотра каталога с помощью нескольких строк программного кода.
Вы также узнали об обработке файлов и каталогов достаточно для того, чтобы превратить "сырое" приложение для работы с компакт-дисками, созданное в конце главы 2, в программу на языке С, применяющую более структурированное решение на базе файлов. Но на этом этапе вы не можете расширить функциональные возможности программы, поэтому мы отложим ее переработку до того времени, когда вы научитесь управлять экраном и клавиатурой, которые будут предметами обсуждения следующих двух глав.
Глава 4
Окружение Linux
Когда вы пишете программу для ОС Linux (или UNIX и UNIX-подобных систем), следует принимать во внимание то, что программа будет выполняться в многозадачной среде или многозадачном окружении. Это означает, что много программ будет выполняться одновременно и совместно использовать ресурсы компьютера, такие как память, дисковое пространство и циклы центрального процессора. Может даже существовать несколько экземпляров одной и той же программы, выполняющихся одновременно. Важно, чтобы эти программы не мешали друг другу, знали о своем окружении и могли действовать надлежащим образом, избегая конфликтов, таких как попытка писать в один и тот же файл одновременно с другой программой.
В этой главе рассматривается окружение, в котором действуют программы, как они его используют для получения информации об условиях функционирования и как пользователи программ могут изменять их поведение. В частности, в данной главе рассматриваются следующие темы:
передача аргументов в программы;
переменные окружения;
определение текущего времени;
временные файлы;
получение информации о пользователе и рабочем компьютере;
формирование и настройка регистрируемых сообщений;
выявление ограничений, накладываемых системой.
Аргументы программы
Когда в ОС Linux или UNIX выполняется программа на языке С, она начинается с функции
Здесь
Вы можете встретить программы на языке С для ОС Linux, просто объявляющие функцию
Этот вариант тоже работает, поскольку по умолчанию возвращаемому функцией значению будет назначен тип
Каждый раз, когда операционная система запускает новую программу, параметры
Например, если мы дадим командной оболочке следующую команду:
программа myprog запустит функцию
Обратите внимание на то, что аргумент-счётчик содержит имя программы и в массив
Вам все это знакомо, если вы программировали на языке С стандарта ISO/ANSI, Аргументы функции
Аргументы командной строки удобны для передачи данных программам. Например, вы можете применить их в приложениях баз данных для передачи имени базы данных, которую хотите использовать, что позволит вам применить одну и ту же программу для работы с несколькими базами данных. Многие утилиты также используют аргументы командной строки для изменения собственного поведения или установки опций. Вы обычно задаете эти так называемые флаги или переключатели с помощью аргументов командной строки, начинающихся со знака "дефис". Например, программа
Опции командной строки используются очень широко, и согласованное их применение будет реальной помощью тем, кто станет использовать вашу программу. В прошлом у каждой утилиты был свой подход к формированию опций командной строки, что приводило к некоторой путанице. Например, взгляните на то, каким способом приведенные далее команды принимают параметры:
Мы рекомендуем в ваших приложениях все переключатели командной строки начинать с дефиса и делать их односимвольными, состоящими из одной буквы или цифры. При необходимости опции, не содержащие последующих аргументов, могут группироваться вместе после общего дефиса. Таким образом, два только что приведенных примера с командой
Собрание сочинений. Том 4
Проза:
классическая проза
рейтинг книги
Дикарка Жасмин
6. Сага о Скай О`Малли
Любовные романы:
исторические любовные романы
рейтинг книги
Алексей Михайлович
4. Романовы. Династия в романах
Проза:
историческая проза
рейтинг книги
Книга 16. Каббалистический форум (старое издание)
Научно-образовательная:
прочая научная литература
религиоведение
рейтинг книги
Возлюби болезнь свою
Научно-образовательная:
психология
рейтинг книги
Беседы
Документальная литература:
биографии и мемуары
публицистика
рейтинг книги
Том 12. Из 'Автобиографии'. Из записных книжек 1865-1905. Избранные письма
Проза:
классическая проза
рейтинг книги
Паладин из прошлого тысячелетия
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
рейтинг книги
Бессонница
17. Темная Башня
Фантастика:
ужасы и мистика
рейтинг книги
UNIX: взаимодействие процессов
Компьютеры и Интернет:
программирование
рейтинг книги
Наномашины, "Шива"! Том 7
7. Первый среди карапузов
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
рейтинг книги
Неучтенный элемент. Том 3
3. Антимаг. Вне системы
Фантастика:
фэнтези
рейтинг книги
Травник
1. Травник
Фантастика:
фэнтези
рейтинг книги
Война Цветов
10. Мастера меча и магии
Фантастика:
фэнтези
рейтинг книги