6.2.2. Раскрытие возможностей времени выполнения
6.2.2. Раскрытие возможностей времени выполнения
Многие системные возможности имеют ограничения, другие являются необязательными, а некоторые могут содержать связанную с ними информацию. Ограничение на длину строки аргументов, передаваемых новой программе, защищает систему от произвольных запросов памяти, которые в ряде случаев могут вызвать крах системы. Не во всех системах POSIX реализовано управление заданиями. Любая программа может получить сведения о наиболее поздней версии стандарта POSIX, которая реализована в системе.
Функция sysconf() выдает такой тип системной информации, которая для одного и того же исполняемого файла в различных системах может отличаться и которую невозможно узнать во время компиляции.
#include <unistd.h>
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), которые может иметь процесс.Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Оценка времени выполнения
Оценка времени выполнения Майк и Питер совершили ужасную ошибку. Майк спрашивает Питера, сколько времени ему потребуется на выполнение работы. Питер дал честный ответ с тремя переменными, но как насчет мнения его коллег? Может, у них есть свое мнение по этому поводу?Самый
Сравнение времени выполнения различных версий функции str_cli
Сравнение времени выполнения различных версий функции str_cli Итак, мы продемонстрировали четыре различных версии функции str_cli. Для каждой версии мы покажем время, которое потребовалось для ее выполнения, в том числе и для версии, использующей программные потоки (см.
8.7 Оценка времени выполнения
8.7 Оценка времени выполнения Мы сравнивали hoc с другими программами-калькуляторами UNIX, чтобы приблизительно оценить, насколько хорошо он работает. К таблице, представленной ниже (табл. 8.1), можно, конечно, отнестись скептически, но она показывает "разумность" нашей
5.7. Раскрытие выражений (expansion)
5.7. Раскрытие выражений (expansion) Когда оболочка получает какую-то командную строку на выполнение, она до начала выполнения команды осуществляет "грамматический разбор" полученной командной строки. Одним из этапов такого "разбора" является раскрытие или подстановка
5.7.1 Раскрытие скобок
5.7.1 Раскрытие скобок Раскрытие скобок проще всего пояснить на примере. Предположим, что нам нужно создать сразу несколько подкаталогов в каком-то каталоге, или поменять владельца сразу у нескольких файлов. Эти действия можно выполнить с помощью следующих команд:[user]$ mkdir
5.7.7 Раскрытие шаблонов имен файлов и каталогов (Pathname Expansion)
5.7.7 Раскрытие шаблонов имен файлов и каталогов (Pathname Expansion) Подстановки имен путей и файлов (Pathname expansion) используются для того, чтобы с помощью краткого образца или шаблона указать несколько имен файлов (или каталогов), соответствующих данному шаблону. После разделения
Раскрытие информации
Раскрытие информации Раскрытие информации – первый шаг к разработке эффективной архитектуры убеждения. Не уделить ему внимания – все равно что забыть заложить фундамент при постройке здания. На данном этапе необходимо сделать следующее:– наметить цели;– разработать
Раскрытие информации
Раскрытие информации За что клиенты любят ваш магазин? За то, что ваша компания находится в семейной собственности? Или потому что вы работаете на рынке уже 126 лет? А может, у вас первоклассное обслуживание? Отличные цены и бесподобные продавцы? Все это, конечно, играет свою
14. Предпочитайте ошибки компиляции и компоновки ошибкам времени выполнения
14. Предпочитайте ошибки компиляции и компоновки ошибкам времени выполнения РезюмеНе стоит откладывать до выполнения программы выявление ошибок, которые можно обнаружить при ее сборке. Предпочтительно писать код, который использует компилятор для проверки инвариантов
1.6.13. Правило экономии: время программиста стоит дорого; поэтому экономия его времени более приоритетна по сравнению с экономией машинного времени
1.6.13. Правило экономии: время программиста стоит дорого; поэтому экономия его времени более приоритетна по сравнению с экономией машинного времени "В ранние мини-компьютерные времена Unix" вынесенная в заголовок идея была довольно радикальной (машины тогда работали
15.6. Отладка времени выполнения
15.6. Отладка времени выполнения Каждый, кто занимается программированием больше одной недели, знает, что исправление синтаксических ошибок является простой частью отладки. За ней следует сложная часть, когда необходимо разобраться, почему поведение синтаксически
1.6.13. Правило экономии: время программиста стоит дорого; поэтому экономия его времени более приоритетна по сравнению с экономией машинного времени
1.6.13. Правило экономии: время программиста стоит дорого; поэтому экономия его времени более приоритетна по сравнению с экономией машинного времени "В ранние мини-компьютерные времена Unix" вынесенная в заголовок идея была довольно радикальной (машины тогда работали
15.6. Отладка времени выполнения
15.6. Отладка времени выполнения Каждый, кто занимается программированием больше одной недели, знает, что исправление синтаксических ошибок является простой частью отладки. За ней следует сложная часть, когда необходимо разобраться, почему поведение синтаксически
1.23. Указание варианта библиотеки времени выполнения
1.23. Указание варианта библиотеки времени выполнения ПроблемаВаш инструментарий поставляется с несколькими вариантами базовых библиотек времени выполнения, и вы хотите указать компилятору и компоновщику тот вариант, который должен использоваться.РешениеБиблиотеки
Раскрытие характера по подписи
Раскрытие характера по подписи Графология позволяет составить психологический портрет человека, исходя из того, как он пишет отдельные буквы, слова, предложения. Конечно, лучше бы для анализа иметь написанные на чистом листе бумаги 15-20 предложений, но в наш век