Man page - getauxval(3)

Packages contains this manual

Available languages:

en fr ja ru

Manual

getauxval

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
АТРИБУТЫ
СТАНДАРТЫ
ИСТОРИЯ
ПРИМЕЧАНИЯ
ОШИБКИ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

getauxval - возвращает значение из вспомогательного вектора

БИБЛИОТЕКА

Стандартная библиотека языка C ( libc , -lc )

ОБЗОР

#include <sys/auxv.h>

unsigned long getauxval(unsigned long type );

ОПИСАНИЕ

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

Каждая запись в вспомогательном векторе состоит из пары значений: типа — которым определяется смысл записи и значением этого типа. Согласно аргументу type , getauxval () возвращает соответствующее значение.

Значения для типов для type представлены в списке далее. Не все значения type есть для всех архитектур.
AT_BASE

Основной (base) адрес программного интерпретатора (обычно, динамического компоновщика).

AT_BASE_PLATFORM

A pointer to a string (PowerPC and MIPS only). On PowerPC, this identifies the real platform; may differ from AT_PLATFORM . On MIPS, this identifies the ISA level (since Linux 5.7).

AT_CLKTCK

Частота, с которой считает times (2). Это значение также может быть получено с помощью sysconf(_SC_CLK_TCK) .

AT_DCACHEBSIZE

Размер блока кэша данных.

AT_EGID

Эффективный идентификатор группы нити.

AT_ENTRY

Адрес точки старта (entry address) исполняемого файла.

AT_EUID

Эффективный идентификатор пользователя нити.

AT_EXECFD

Файловый дескриптор программы.

AT_EXECFN

A pointer to a string containing the pathname used to execute the program.

AT_FLAGS

Флаги (не используется).

AT_FPUCW

Используемое слово управления FPU (только для SuperH). Оно даёт некоторую информацию о нагрузке FPU, выполняемой ядром.

AT_GID

Реальный идентификатор группы нити.

AT_HWCAP

Битовая маска, зависящая от архитектуры и двоичного программного интерфейса, подробно описывает возможности процессора. Содержимое битовой маски зависит от аппаратуры (например, в файле исходного кода ядра arch/x86/include/asm/cpufeature.h описана маска для архитектуры Intel x86; возвращаемое значение — первое 32-битное слово описываемого здесь массива). Эта же информация в формате, понятном человеку, доступна в файле /proc/cpuinfo .

AT_HWCAP2 (начиная с glibc 2.18)

Дополнительные упоминания о возможностях процессора.

AT_ICACHEBSIZE

Размер блока кэша инструкций.

AT_L1D_CACHEGEOMETRY

Структура кэша данных L1, в которой закодирован размер строки кэша в байтах в младших 16 битах и ассоциативность кэша в следующих 16 битах. Значение ассоциативности N выражается 16-битным числом, указывающим на N-канальную ассоциативность.

AT_L1D_CACHESIZE

Размер кэша данных L1.

AT_L1I_CACHEGEOMETRY

Структура кэша инструкций L1, кодируется также как AT_L1D_CACHEGEOMETRY .

AT_L1I_CACHESIZE

Размер кэша инструкций L1.

AT_L2_CACHEGEOMETRY

Структура кэша L2, кодируется также как AT_L1D_CACHEGEOMETRY .

AT_L2_CACHESIZE

Размер кэша L2.

AT_L3_CACHEGEOMETRY

Структура кэша L3, кодируется также как AT_L1D_CACHEGEOMETRY .

AT_L3_CACHESIZE

Размер кэша L3.

AT_PAGESZ

Размер системной страницы (это же значение возвращается sysconf(_SC_PAGESIZE) ).

AT_PHDR

Адрес заголовков программы исполняемого файла.

AT_PHENT

Размер элемента заголовка программы.

AT_PHNUM

Количество заголовков программы.

AT_PLATFORM

Указатель на строку, описывающую аппаратную платформу, на которой выполняется программа. Динамический компоновщик использует её при рассмотрении значений rpath .

AT_RANDOM

Адрес 16 байт, содержащих произвольное значение.

AT_SECURE

Содержит ненулевое значение, если исполняемый файл должен считаться безопасным. Чаще всего, ненулевое значение означает, что процесс выполняет программу с установленным set-user-ID или set-group-ID битом (то есть его реальный и эффективный UID или GID отличаются от начального) или же он получает мандаты, запуская двоичный файл с другими мандатами (смотрите capabilities (7)). Также ненулевое значение может выставляться Linux Security Module. Если значение не ноль, то динамический компоновщик прекращает использовать определённые переменные окружения (смотрите ld-linux.so (8)) и изменяется некоторое поведение glibc (также смотрите secure_getenv (3)).

AT_SYSINFO

Точка входа в функцию системного вызова в vDSO. Отсутствует/не нужна для всех архитектур (например, отсутствует на x86-64).

AT_SYSINFO_EHDR

Адрес страницы, содержащий виртуальный Динамический Общий Объект (Dynamic Shared Object, vDSO), который ядро создаёт для предоставления более быстрой реализации некоторых системных вызовов.

AT_UCACHEBSIZE

Размер блока универсального кэша.

AT_UID

Реальный идентификатор пользователя нити.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении getauxval () возвращает значение, соответствующее type .Если type не найден, то возвращается 0.

ОШИБКИ

ENOENT (начиная с glibc 2.19)

В вспомогательном векторе не найдено значение, соответствующее type .

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes (7).

Image grohtml-612898-1.png

СТАНДАРТЫ

GNU.

ИСТОРИЯ

glibc 2.16.

ПРИМЕЧАНИЯ

Основным пользователем информации из вспомогательного вектора является динамический компоновщик ld-linux.so (8). Вспомогательный вектор удобное и эффективное средство для предоставления ядром некоторого набора стандартной информации, которая обычно или всегда требуется динамическому компоновщику. В некоторых случаях эта информация может быть получена через системные вызовы, но использование вспомогательного вектора экономичней.

Вспомогательный вектор располагается выше списка аргументов и окружения в адресном пространстве процесса. Переданный программе вектор можно просмотреть установив переменную окружения LD_SHOW_AUXV и запустив программу:

$ LD_SHOW_AUXV=1 sleep 1

The auxiliary vector of any process can (subject to file permissions) be obtained via /proc/ pid /auxv ; see proc (5) for more information.

ОШИБКИ

До того как ошибка ENOENT не была добавлена в glibc 2.19, не было способа достоверно определить, что type не найден, если значение type равно нулю.

СМОТРИТЕ ТАКЖЕ

execve (2), secure_getenv (3), vdso (7), ld-linux.so (8)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .