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

Тут можно читать онлайн Майкл Джонсон - Разработка приложений в среде Linux. Второе издание - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-osnet, издательство Вильямс, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Разработка приложений в среде Linux. Второе издание
  • Автор:
  • Жанр:
  • Издательство:
    Вильямс
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    978-5-8459-1143-8
  • Рейтинг:
    3.8/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

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

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

Разработка приложений в среде Linux. Второе издание - читать книгу онлайн бесплатно, автор Майкл Джонсон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Функция sysconf()выдает такой тип системной информации, которая для одного и того же исполняемого файла в различных системах может отличаться и которую невозможно узнать во время компиляции.

#include

long sysconf (int);

Целочисленный аргумент в sysconf()— это один из наборов макросов с префиксом _SC_. Ниже перечислены макросы, которые используются чаще всего.

_SC_CLK_TCK Возвращает количество тактов в секунду внутренних часов ядра, различаемое программами. Следует отметить, что ядро может содержать одни или больше часов, работающих на более высокой частоте. _SC_CLK_TCKобеспечивает подсчет тактов, которые используются для получения информации из ядра, и этот макрос не является индикатором времени ожидания системы.
_SC_STREAM_MAX Возвращает максимальное количество стандартных потоков ввода-вывода С, которые могут быть одновременно открыты в системе.
_SC_ARG_MAX Возвращает максимальную длину аргумента командной строки и переменных окружения в байтах, которые используются любой из функций exec(). Если это ограничение превышено, exec()вернет ошибку Е2ВIG.
_SC_OPEN_MAX Возвращает максимальное количество файлов, которые одновременно могут быть открыты процессом; это то же самое, что и программное ограничение RLIMIT_NOFILE, которое может быть запрошено функцией getrlimit()и установлено функцией setrlimit(). Это единственное значение sysconf(), которое может изменяться во время выполнения программы; при вызове setrlimit()для изменения ограничения RLIMIT_NOFILE. _SC_OPEN_MAXтакже подчиняется новому программному ограничению.
_SC_PAGESIZEили _SC_PAGE_SIZE Возвращает размер одной страницы в байтах. В системах, которые могут поддерживать разные размеры страниц, возвращается размер одной обычной страницы, для которой выделено определенное количество памяти и которая считается естественным размером страниц для конкретной системы.
_SC_LINE_MAX Возвращает максимальную длину в байтах входной строки, обрабатываемой текстовыми утилитами, включая завершающий символ новой строки. Следует отметить, что во многих утилитах GNU, используемых в Linux-системах, фактически нет жестко закодированной максимальной длины строки, потому могут применяться входные строки произвольной длины. Однако переносимая программа не должна вызывать текстовые утилиты для строк, длина которых превышает _SC_LINE_MAX; во многих Unix-системах утилиты работают с фиксированным максимальным размером строки, и его превышение может привести к неопределенным результатам.
_SC_NGROUPS_MAX Возвращает количество дополнительных групп (см. главу 10), которые может иметь процесс.

6.2.3. Поиск и настройка базовой системной информации

Существует несколько порций полезной информации о системе, которая может понадобиться программе. Например, название и версия операционной системы могут служить для определения функциональности, предлагаемой системными программами.

Системный вызов uname()позволяет программе обнаружить информацию времени ее выполнения.

#include

int uname(struct utsname* unameBuf);

В случае ошибки функция возвращает ненулевое значение, что происходит только в ситуациях, когда передается недопустимый указатель unameBuf. При нормальном завершении структура, на которую он указывает, заполняется строками, завершаемыми NULL, которые описывают текущую систему. В табл. 6.1 представлены члены структуры utsname.

Таблица 6.1. Члены структуры utsname

Член Описание
sysname Название операционной системы (в данном случае Linux).
release Номер версии выполняющегося ядра. Это полная версия вроде 2.6.2. Номер может быть легко изменен тем, кто выполнял сборку ядра, и вполне возможно, что цифр будет больше трех. Во многих версиях можно встретить дополнительную цифру для описания примененных исправлений, например, 2.4.17-23.
version Под Linux здесь содержится временная метка, описывающая время, когда собиралось ядро.
machine Короткая строка, указывающая тип микропроцессора, на котором работает операционная система. Для Pentium Pro или более мощных она может быть i686, для процессоров класса Alpha — alpha, а для 64-разрядных процессоров PowerPC — ррс64.
nodename Имя хоста машины, которое обычно является первичным именем хоста в Internet.
domainname Домен NIS (или YP), которому принадлежит машина.

Член nodename(имя узла) часто называется системным именем хоста (то, что отображает команда hostname), однако его не следует путать с именем Internet-хоста. Несмотря на то что во многих системах эти члены не различаются, путать их не стоит. В системе с множеством Internet-адресов есть множество имен Internet-хостов, но только одно имя узла, поэтому эти имена не являются эквивалентными.

Более распространенная ситуация связана с домашними компьютерами, которые используют Internet-каналы широкополосной связи. Обычно их имя хоста в Internet выглядит вроде host127-56.raleigh.myisp.com, а имена Internet-хостов меняются каждый раз при отключении на длительное время от модема [6] Большинство, но не все, поставщики услуг доступа в Internet назначают динамические IP-адреса, а не статические. . Владельцы этих машин дают своим компьютерам имя узла, которое им больше нравится, например, lorenили eleanor, что совершенно не относится к адресам Internet. При наличии множества машин, работающих на одном домашнем шлюзе, все они будут разделять один Internet-адрес (и одно имя Internet-хоста), но могут иметь имена вроде Linux.mynetwork.orgи freebsd.mynetwork.org, которые все еще не являются именами Internet-хоста. В связи со всеми вышеперечисленными причинами, предполагать, что имя системного узла является допустимым именем Internet-хоста для машины не верно.

Имя узла системы устанавливается с помощью системного вызова sethostname() [7] Несмотря на имя, которое может ввести в заблуждение, этот системный вызов устанавливает имя узла, а не имя Internet-хоста машины. , и имя домена NIS (YP) [8] Сетевые информационные службы (Network Information Services — NIS) предоставляют для машин в сети механизм совместного использования информации, такой как пользовательские имена и пароли. Ранее они назывались "желтыми страницами" (Yellow Pages — YP). Имя домена NIS — часть этого механизма, который реализуется за пределами ядра системы с тем исключением, что доменное имя хранится в структуре utsname . — посредством системного вызова setdomainname().

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

Интервал:

Закладка:

Сделать


Майкл Джонсон читать все книги автора по порядку

Майкл Джонсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


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


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x