Разработка приложений в среде Linux - [21]
>_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]. Владельцы этих машин дают своим компьютерам имя узла, которое им больше нравится, например, >loren
или >eleanor
, что совершенно не относится к адресам Internet. При наличии множества машин, работающих на одном домашнем шлюзе, все они будут разделять один Internet-адрес (и одно имя Internet-хоста), но могут иметь имена вроде >Linux.mynetwork.org
и >freebsd.mynetwork.org
, которые все еще не являются именами Internet-хоста. В связи со всеми вышеперечисленными причинами, предполагать, что имя системного узла является допустимым именем Internet-хоста для машины не верно.
Одно из немногих изданий на русском языке, которое посвящено старейшей глобальной компьютерной сети "Fidonet". Сатирический справочник о жизни и смерти самого древнего сетевого сообщества, которое до сих пор существует среди нас.
В пособии излагаются основные тенденции развития организационного обеспечения безопасности информационных систем, а также подходы к анализу информационной инфраструктуры организационных систем и решению задач обеспечения безопасности компьютерных систем.Для студентов по направлению подготовки 230400 – Информационные системы и технологии (квалификация «бакалавр»).
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.Для программистов-пользователей операционной системы UNIX.
Книга адресована программистам, работающим в самых разнообразных ОС UNIX. Авторы предлагают шире взглянуть на возможности параллельной организации вычислительного процесса в традиционном программировании. Особый акцент делается на потоках (threads), а именно на тех возможностях и сложностях, которые были привнесены в технику параллельных вычислений этой относительно новой парадигмой программирования. На примерах реальных кодов показываются приемы и преимущества параллельной организации вычислительного процесса.
Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.
Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.