.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2012 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" See also https://lwn.net/Articles/519085/ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getauxval 3 "20 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ getauxval \- возвращает значение из вспомогательного вектора .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBunsigned long getauxval(unsigned long \fP\fItype\fP\fB);\fP .fi .SH ОПИСАНИЕ Функция \fBgetauxval\fP() возвращает значения из вспомогательного вектора — механизма, с помощью которого ядерный загрузчик двоичных файлов ELF передаёт информацию в пользовательское пространство при выполнении программы. .PP Каждая запись в вспомогательном векторе состоит из пары значений: типа — которым определяется смысл записи и значением этого типа. Согласно аргументу \fItype\fP, \fBgetauxval\fP() возвращает соответствующее значение. .PP Значения для типов для \fItype\fP представлены в списке далее. Не все значения \fItype\fP есть для всех архитектур. .TP \fBAT_BASE\fP Основной (base) адрес программного интерпретатора (обычно, динамического компоновщика). .TP \fBAT_BASE_PLATFORM\fP .\" commit e585b768da111f2c2d413de6214e83bbdfee8f22 A pointer to a string (PowerPC and MIPS only). On PowerPC, this identifies the real platform; may differ from \fBAT_PLATFORM\fP. On MIPS, this identifies the ISA level (since Linux 5.7). .TP \fBAT_CLKTCK\fP Частота, с которой считает \fBtimes\fP(2). Это значение также может быть получено с помощью \fIsysconf(_SC_CLK_TCK)\fP. .TP \fBAT_DCACHEBSIZE\fP Размер блока кэша данных. .TP \fBAT_EGID\fP Эффективный идентификатор группы нити. .TP \fBAT_ENTRY\fP Адрес точки старта (entry address) исполняемого файла. .TP \fBAT_EUID\fP Эффективный идентификатор пользователя нити. .TP \fBAT_EXECFD\fP Файловый дескриптор программы. .TP \fBAT_EXECFN\fP A pointer to a string containing the pathname used to execute the program. .TP \fBAT_FLAGS\fP Флаги (не используется). .TP \fBAT_FPUCW\fP Используемое слово управления FPU (только для SuperH). Оно даёт некоторую информацию о нагрузке FPU, выполняемой ядром. .TP \fBAT_GID\fP Реальный идентификатор группы нити. .TP \fBAT_HWCAP\fP Битовая маска, зависящая от архитектуры и двоичного программного интерфейса, подробно описывает возможности процессора. Содержимое битовой маски зависит от аппаратуры (например, в файле исходного кода ядра \fIarch/x86/include/asm/cpufeature.h\fP описана маска для архитектуры Intel x86; возвращаемое значение — первое 32\-битное слово описываемого здесь массива). Эта же информация в формате, понятном человеку, доступна в файле \fI/proc/cpuinfo\fP. .TP \fBAT_HWCAP2\fP (начиная с glibc 2.18) Дополнительные упоминания о возможностях процессора. .TP \fBAT_ICACHEBSIZE\fP .\" .TP .\" .BR AT_IGNORE .\" .TP .\" .BR AT_IGNOREPPC .\" .TP .\" .BR AT_NOTELF Размер блока кэша инструкций. .TP .\" Kernel commit 98a5f361b8625c6f4841d6ba013bbf0e80d08147 \fBAT_L1D_CACHEGEOMETRY\fP Структура кэша данных L1, в которой закодирован размер строки кэша в байтах в младших 16 битах и ассоциативность кэша в следующих 16 битах. Значение ассоциативности N выражается 16\-битным числом, указывающим на N\-канальную ассоциативность. .TP \fBAT_L1D_CACHESIZE\fP Размер кэша данных L1. .TP \fBAT_L1I_CACHEGEOMETRY\fP Структура кэша инструкций L1, кодируется также как \fBAT_L1D_CACHEGEOMETRY\fP. .TP \fBAT_L1I_CACHESIZE\fP Размер кэша инструкций L1. .TP \fBAT_L2_CACHEGEOMETRY\fP Структура кэша L2, кодируется также как \fBAT_L1D_CACHEGEOMETRY\fP. .TP \fBAT_L2_CACHESIZE\fP Размер кэша L2. .TP \fBAT_L3_CACHEGEOMETRY\fP Структура кэша L3, кодируется также как \fBAT_L1D_CACHEGEOMETRY\fP. .TP \fBAT_L3_CACHESIZE\fP Размер кэша L3. .TP \fBAT_PAGESZ\fP Размер системной страницы (это же значение возвращается \fIsysconf(_SC_PAGESIZE)\fP). .TP \fBAT_PHDR\fP Адрес заголовков программы исполняемого файла. .TP \fBAT_PHENT\fP Размер элемента заголовка программы. .TP \fBAT_PHNUM\fP Количество заголовков программы. .TP \fBAT_PLATFORM\fP Указатель на строку, описывающую аппаратную платформу, на которой выполняется программа. Динамический компоновщик использует её при рассмотрении значений \fIrpath\fP. .TP \fBAT_RANDOM\fP Адрес 16 байт, содержащих произвольное значение. .TP \fBAT_SECURE\fP Содержит ненулевое значение, если исполняемый файл должен считаться безопасным. Чаще всего, ненулевое значение означает, что процесс выполняет программу с установленным set\-user\-ID или set\-group\-ID битом (то есть его реальный и эффективный UID или GID отличаются от начального) или же он получает мандаты, запуская двоичный файл с другими мандатами (смотрите \fBcapabilities\fP(7)). Также ненулевое значение может выставляться Linux Security Module. Если значение не ноль, то динамический компоновщик прекращает использовать определённые переменные окружения (смотрите \fBld\-linux.so\fP(8)) и изменяется некоторое поведение glibc (также смотрите \fBsecure_getenv\fP(3)). .TP \fBAT_SYSINFO\fP Точка входа в функцию системного вызова в vDSO. Отсутствует/не нужна для всех архитектур (например, отсутствует на x86\-64). .TP \fBAT_SYSINFO_EHDR\fP Адрес страницы, содержащий виртуальный Динамический Общий Объект (Dynamic Shared Object, vDSO), который ядро создаёт для предоставления более быстрой реализации некоторых системных вызовов. .TP \fBAT_UCACHEBSIZE\fP Размер блока универсального кэша. .TP \fBAT_UID\fP Реальный идентификатор пользователя нити. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении \fBgetauxval\fP() возвращает значение, соответствующее \fItype\fP.Если \fItype\fP не найден, то возвращается 0. .SH ОШИБКИ .TP \fBENOENT\fP (начиная с glibc 2.19) .\" commit b9ab448f980e296eac21ac65f53783967cc6037b В вспомогательном векторе не найдено значение, соответствующее \fItype\fP. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBgetauxval\fP() T} Безвредность в нитях MT\-Safe .TE .sp 1 .SH СТАНДАРТЫ GNU. .SH ИСТОРИЯ glibc 2.16. .SH ЗАМЕЧАНИЯ Основным пользователем информации из вспомогательного вектора является динамический компоновщик \fBld\-linux.so\fP(8). Вспомогательный вектор удобное и эффективное средство для предоставления ядром некоторого набора стандартной информации, которая обычно или всегда требуется динамическому компоновщику. В некоторых случаях эта информация может быть получена через системные вызовы, но использование вспомогательного вектора экономичней. .PP Вспомогательный вектор располагается выше списка аргументов и окружения в адресном пространстве процесса. Переданный программе вектор можно просмотреть установив переменную окружения \fBLD_SHOW_AUXV\fP и запустив программу: .PP .in +4n .EX $ LD_SHOW_AUXV=1 sleep 1 .EE .in .PP The auxiliary vector of any process can (subject to file permissions) be obtained via \fI/proc/\fPpid\fI/auxv\fP; see \fBproc\fP(5) for more information. .SH ДЕФЕКТЫ До того как ошибка \fBENOENT\fP не была добавлена в glibc 2.19, не было способа достоверно определить, что \fItype\fP не найден, если значение \fItype\fP равно нулю. .SH "СМ. ТАКЖЕ" \fBexecve\fP(2), \fBsecure_getenv\fP(3), \fBvdso\fP(7), \fBld\-linux.so\fP(8) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .