summaryrefslogtreecommitdiffstats
path: root/po/ru/man3/dl_iterate_phdr.3.po
diff options
context:
space:
mode:
Diffstat (limited to 'po/ru/man3/dl_iterate_phdr.3.po')
-rw-r--r--po/ru/man3/dl_iterate_phdr.3.po1083
1 files changed, 1083 insertions, 0 deletions
diff --git a/po/ru/man3/dl_iterate_phdr.3.po b/po/ru/man3/dl_iterate_phdr.3.po
new file mode 100644
index 00000000..7ecb2023
--- /dev/null
+++ b/po/ru/man3/dl_iterate_phdr.3.po
@@ -0,0 +1,1083 @@
+# Russian translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Yuri Kozlov <yuray@komyakino.ru>, 2012-2019.
+# Иван Павлов <pavia00@gmail.com>, 2017.
+msgid ""
+msgstr ""
+"Project-Id-Version: manpages-l10n\n"
+"POT-Creation-Date: 2024-03-01 16:55+0100\n"
+"PO-Revision-Date: 2019-08-29 09:55+0300\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <man-pages-ru-talks@lists.sourceforge.net>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
+"(n%100>=11 && n%100<=14)? 2 : 3);\n"
+"X-Generator: Lokalize 2.0\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<dl_iterate_phdr>()"
+msgid "dl_iterate_phdr"
+msgstr "B<dl_iterate_phdr>()"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr "31 октября 2023 г."
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr "Linux man-pages 6.06"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr "ИМЯ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "dl_iterate_phdr - walk through list of shared objects"
+msgstr "dl_iterate_phdr - обход списка общих объектов"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "СИНТАКСИС"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
+"B<#include E<lt>link.hE<gt>>\n"
+msgstr ""
+"B<#define _GNU_SOURCE> /* см. feature_test_macros(7) */\n"
+"B<#include E<lt>link.hE<gt>>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid ""
+#| "B<int dl_iterate_phdr(>\n"
+#| "B< int (*>I<callback>B<) (struct dl_phdr_info *>I<info>B<,>\n"
+#| "B< size_t >I<size>B<, void *>I<data>B<),>\n"
+#| "B< void *>I<data>B<);>\n"
+msgid ""
+"B<int dl_iterate_phdr(>\n"
+"B< int (*>I<callback>B<)(struct dl_phdr_info *>I<info>B<,>\n"
+"B< size_t >I<size>B<, void *>I<data>B<),>\n"
+"B< void *>I<data>B<);>\n"
+msgstr ""
+"B<int dl_iterate_phdr(>\n"
+"B< int (*>I<callback>B<) (struct dl_phdr_info *>I<info>B<,>\n"
+"B< size_t >I<size>B<, void *>I<data>B<),>\n"
+"B< void *>I<data>B<);>\n"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "ОПИСАНИЕ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<dl_iterate_phdr>() function allows an application to inquire at run "
+"time to find out which shared objects it has loaded, and the order in which "
+"they were loaded."
+msgstr ""
+"Функция B<dl_iterate_phdr>() позволяет приложению во время выполнения "
+"узнать, какие общие объекты были загружены и их порядок загрузки."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<dl_iterate_phdr>() function walks through the list of an "
+"application's shared objects and calls the function I<callback> once for "
+"each object, until either all shared objects have been processed or "
+"I<callback> returns a nonzero value."
+msgstr ""
+"Функция B<dl_iterate_phdr>() обходит список общих объектов приложения и "
+"однократно вызывает функцию I<callback> для каждого объекта до тех пор, пока "
+"или все общие объекты не будут просмотрены, или функция I<callback> не "
+"вернёт ненулевое значение."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Each call to I<callback> receives three arguments: I<info>, which is a "
+"pointer to a structure containing information about the shared object; "
+"I<size>, which is the size of the structure pointed to by I<info>; and "
+"I<data>, which is a copy of whatever value was passed by the calling program "
+"as the second argument (also named I<data>) in the call to "
+"B<dl_iterate_phdr>()."
+msgstr ""
+"При каждом вызове в I<callback> передаётся три параметра: I<info> (указатель "
+"на структуру с информацией об общем объекте), I<size> (размер структуры, на "
+"которую указывает I<info>) и I<data> (копия любого значения, переданного "
+"вызывающей программой во втором параметре (также называемом I<data>) в вызов "
+"B<dl_iterate_phdr>()."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The I<info> argument is a structure of the following type:"
+msgstr "Параметр I<info> представляет собой структуру следующего вида:"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid ""
+#| " unsigned long long int dlpi_adds;\n"
+#| " /* Incremented when a new object may\n"
+#| " have been added */\n"
+#| " unsigned long long int dlpi_subs;\n"
+#| " /* Incremented when an object may\n"
+#| " have been removed */\n"
+#| " size_t dlpi_tls_modid;\n"
+#| " /* If there is a PT_TLS segment, its module\n"
+#| " ID as used in TLS relocations, else zero */\n"
+#| " void *dlpi_tls_data;\n"
+#| " /* The address of the calling thread's instance\n"
+#| " of this module's PT_TLS segment, if it has\n"
+#| " one and it has been allocated in the calling\n"
+#| " thread, otherwise a null pointer */\n"
+#| "};\n"
+msgid ""
+"struct dl_phdr_info {\n"
+" ElfW(Addr) dlpi_addr; /* Base address of object */\n"
+" const char *dlpi_name; /* (Null-terminated) name of\n"
+" object */\n"
+" const ElfW(Phdr) *dlpi_phdr; /* Pointer to array of\n"
+" ELF program headers\n"
+" for this object */\n"
+" ElfW(Half) dlpi_phnum; /* # of items in I<dlpi_phdr> */\n"
+"\\&\n"
+" /* The following fields were added in glibc 2.4, after the first\n"
+" version of this structure was available. Check the I<size>\n"
+" argument passed to the dl_iterate_phdr callback to determine\n"
+" whether or not each later member is available. */\n"
+"\\&\n"
+" unsigned long long dlpi_adds;\n"
+" /* Incremented when a new object may\n"
+" have been added */\n"
+" unsigned long long dlpi_subs;\n"
+" /* Incremented when an object may\n"
+" have been removed */\n"
+" size_t dlpi_tls_modid;\n"
+" /* If there is a PT_TLS segment, its module\n"
+" ID as used in TLS relocations, else zero */\n"
+" void *dlpi_tls_data;\n"
+" /* The address of the calling thread\\[aq]s instance\n"
+" of this module\\[aq]s PT_TLS segment, if it has\n"
+" one and it has been allocated in the calling\n"
+" thread, otherwise a null pointer */\n"
+"};\n"
+msgstr ""
+" unsigned long long int dlpi_adds;\n"
+" /* увеличивается, когда мог быть\n"
+" добавлен новый объект */\n"
+" unsigned long long int dlpi_subs;\n"
+" /* увеличивается, когда мог быть\n"
+" удалён новый объект */\n"
+" size_t dlpi_tls_modid;\n"
+" /* если существует сегмент PT_TLS, это его\n"
+" ID модуля, используемый в\n"
+" перестановках TLS, иначе 0 */\n"
+" void *dlpi_tls_data;\n"
+" /* адрес экземпляра вызывающей нити\n"
+" сегмента PT_TLS этого модуля, если он есть\n"
+" и был выделен в вызывающей нити,\n"
+" иначе указатель null */\n"
+"};\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(The I<ElfW>() macro definition turns its argument into the name of an ELF "
+"data type suitable for the hardware architecture. For example, on a 32-bit "
+"platform, I<ElfW(Addr)> yields the data type name I<Elf32_Addr>. Further "
+"information on these types can be found in the I<E<lt>elf.hE<gt>> and "
+"I<E<lt>link.hE<gt>> header files.)"
+msgstr ""
+"(Макрос I<ElfW>() преобразует свой аргумент в имя типа данных ELF, "
+"подходящее для аппаратной архитектуры. Например, на 32-битной платформе "
+"I<ElfW(Addr)> вернёт имя типа данных I<Elf32_Addr>. Дополнительную "
+"информацию можно найти в заголовочных файлах I<E<lt>elf.hE<gt>> и "
+"I<E<lt>link.hE<gt>>.)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<dlpi_addr> field indicates the base address of the shared object (i."
+"e., the difference between the virtual memory address of the shared object "
+"and the offset of that object in the file from which it was loaded). The "
+"I<dlpi_name> field is a null-terminated string giving the pathname from "
+"which the shared object was loaded."
+msgstr ""
+"В поле I<dlpi_addr> указывается базовый адрес общего объекта (т. е., разница "
+"между виртуальным адресом памяти общего объекта и смещением до этого объекта "
+"в файле, из которого он был загружен). Поле I<dlpi_name> представляет собой "
+"строку с null на конце, определяющую путь, из которого был загружен общий "
+"объект."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"To understand the meaning of the I<dlpi_phdr> and I<dlpi_phnum> fields, we "
+"need to be aware that an ELF shared object consists of a number of segments, "
+"each of which has a corresponding program header describing the segment. "
+"The I<dlpi_phdr> field is a pointer to an array of the program headers for "
+"this shared object. The I<dlpi_phnum> field indicates the size of this "
+"array."
+msgstr ""
+"Чтобы понять назначение полей I<dlpi_phdr> и I<dlpi_phnum>, нам необходимо "
+"представлять, что общий объект ELF состоит из набора сегментов, каждый из "
+"которых имеет соответствующий программный заголовок, описывающий сегмент. "
+"Поле I<dlpi_phdr> представляет собой указатель на массив программных "
+"заголовков этого общего объекта. В поле I<dlpi_phnum> задаётся размер этого "
+"массива."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "These program headers are structures of the following form:"
+msgstr "Программные заголовки представляют собой структуры следующего вида:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"typedef struct {\n"
+" Elf32_Word p_type; /* Segment type */\n"
+" Elf32_Off p_offset; /* Segment file offset */\n"
+" Elf32_Addr p_vaddr; /* Segment virtual address */\n"
+" Elf32_Addr p_paddr; /* Segment physical address */\n"
+" Elf32_Word p_filesz; /* Segment size in file */\n"
+" Elf32_Word p_memsz; /* Segment size in memory */\n"
+" Elf32_Word p_flags; /* Segment flags */\n"
+" Elf32_Word p_align; /* Segment alignment */\n"
+"} Elf32_Phdr;\n"
+msgstr ""
+"typedef struct {\n"
+" Elf32_Word p_type; /* тип сегмента */\n"
+" Elf32_Off p_offset; /* смещение сегмента в файле */\n"
+" Elf32_Addr p_vaddr; /* виртуальный адрес сегмента */\n"
+" Elf32_Addr p_paddr; /* физический адрес сегмента */\n"
+" Elf32_Word p_filesz; /* размер сегмента в файле */\n"
+" Elf32_Word p_memsz; /* размер сегмента в памяти */\n"
+" Elf32_Word p_flags; /* флаги сегмента */\n"
+" Elf32_Word p_align; /* выравнивание сегмента */\n"
+"} Elf32_Phdr;\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Note that we can calculate the location of a particular program header, "
+"I<x>, in virtual memory using the formula:"
+msgstr ""
+"Заметим, что мы можем вычислить расположение определённого программного "
+"заголовка I<x> в виртуальной памяти по следующей формуле:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "addr == info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[x].p_vaddr;\n"
+msgstr "addr == info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[x].p_vaddr;\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Possible values for I<p_type> include the following (see I<E<lt>elf.hE<gt>> "
+"for further details):"
+msgstr ""
+"Возможными значениями I<p_type> поля могут быть (подробности смотрите в "
+"I<E<lt>elf.hE<gt>>):"
+
+#. For PT_GNU_STACK, see http://www.airs.com/blog/archives/518
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"#define PT_LOAD 1 /* Loadable program segment */\n"
+"#define PT_DYNAMIC 2 /* Dynamic linking information */\n"
+"#define PT_INTERP 3 /* Program interpreter */\n"
+"#define PT_NOTE 4 /* Auxiliary information */\n"
+"#define PT_SHLIB 5 /* Reserved */\n"
+"#define PT_PHDR 6 /* Entry for header table itself */\n"
+"#define PT_TLS 7 /* Thread-local storage segment */\n"
+"#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */\n"
+"#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */\n"
+"#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */\n"
+msgstr ""
+"#define PT_LOAD 1 /* загружаемый сегмент программы */\n"
+"#define PT_DYNAMIC 2 /* информация о динамической компоновке */\n"
+"#define PT_INTERP 3 /* интерпретатор программы */\n"
+"#define PT_NOTE 4 /* вспомогательная информация */\n"
+"#define PT_SHLIB 5 /* зарезервировано */\n"
+"#define PT_PHDR 6 /* сам элемент таблицы заголовков */\n"
+"#define PT_TLS 7 /* сегмент локального хранилища нити */\n"
+"#define PT_GNU_EH_FRAME 0x6474e550 /* сегмент GCC .eh_frame_hdr */\n"
+"#define PT_GNU_STACK 0x6474e551 /* показывает, что стек — исполняемый */\n"
+"#define PT_GNU_RELRO 0x6474e552 /* только чтения после перемещения */\n"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<dl_iterate_phdr>() function returns whatever value was returned by "
+"the last call to I<callback>."
+msgstr ""
+"Функция B<dl_iterate_phdr>() возвращает значение, которое было получено в "
+"результате последнего вызова I<callback>."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "АТРИБУТЫ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For an explanation of the terms used in this section, see B<attributes>(7)."
+msgstr "Описание терминов данного раздела смотрите в B<attributes>(7)."
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Interface"
+msgstr "Интерфейс"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Attribute"
+msgstr "Атрибут"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Value"
+msgstr "Значение"
+
+#. type: tbl table
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ".na\n"
+msgstr ".na\n"
+
+#. type: tbl table
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ".nh\n"
+msgstr ".nh\n"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<dl_iterate_phdr>()"
+msgstr "B<dl_iterate_phdr>()"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Thread safety"
+msgstr "Безвредность в нитях"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "MT-Safe"
+msgstr "MT-Safe"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "VERSIONS"
+msgstr "ВЕРСИИ"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The B<dl_iterate_phdr>() function is not specified in any standard. "
+#| "Various other systems provide a version of this function, although "
+#| "details of the returned I<dl_phdr_info> structure differ. On the BSDs "
+#| "and Solaris, the structure includes the fields I<dlpi_addr>, "
+#| "I<dlpi_name>, I<dlpi_phdr>, and I<dlpi_phnum> in addition to other "
+#| "implementation-specific fields."
+msgid ""
+"Various other systems provide a version of this function, although details "
+"of the returned I<dl_phdr_info> structure differ. On the BSDs and Solaris, "
+"the structure includes the fields I<dlpi_addr>, I<dlpi_name>, I<dlpi_phdr>, "
+"and I<dlpi_phnum> in addition to other implementation-specific fields."
+msgstr ""
+"Функция B<dl_iterate_phdr>() не описана в каком-либо стандарте. Эта функция "
+"есть в некоторых других системах, при чём возвращаемая структура "
+"I<dl_phdr_info> имеет другой формат. В BSD и Solaris, в структуре есть поля "
+"I<dlpi_addr>, I<dlpi_name>, I<dlpi_phdr> и I<dlpi_phnum> (помимо других "
+"внесённых реализацией полей)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Future versions of the C library may add further fields to the "
+"I<dl_phdr_info> structure; in that event, the I<size> argument provides a "
+"mechanism for the callback function to discover whether it is running on a "
+"system with added fields."
+msgstr ""
+"В будущих версиях библиотеки C в структуре I<dl_phdr_info> могут появиться "
+"дополнительные поля; для этого случая предусмотрен аргумент I<size>, который "
+"предоставляет вызываемой функции механизм обнаружения того, что она работает "
+"в системе с добавленными полями."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr "СТАНДАРТЫ"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "None"
+msgid "None."
+msgstr "None"
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr "ИСТОРИЯ"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "Since glibc 2.2.2:"
+msgid "glibc 2.2.4."
+msgstr "Начиная с glibc 2.2.2:"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr "ЗАМЕЧАНИЯ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The first object visited by I<callback> is the main program. For the main "
+"program, the I<dlpi_name> field will be an empty string."
+msgstr ""
+"Первый объект, просматриваемый I<callback>, это главная программа. У главной "
+"программы поле I<dlpi_name> будет содержать пустую строку."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "ПРИМЕРЫ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following program displays a list of pathnames of the shared objects it "
+"has loaded. For each shared object, the program lists some information "
+"(virtual address, size, flags, and type) for each of the objects ELF "
+"segments."
+msgstr ""
+"Следующая программа выводит список путей общих объектов, из которых они были "
+"загружены. Для каждого общего объекта программа выводит информацию из "
+"каждого сегмента объектов ELF (виртуальный адрес, размер, флаги и тип)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following shell session demonstrates the output produced by the program "
+"on an x86-64 system. The first shared object for which output is displayed "
+"(where the name is an empty string) is the main program."
+msgstr ""
+"В следующем сеансе оболочки показан вывод программы, запущенной в системе с "
+"архитектурой x86-64. Первый показанный общий объект это основная программа "
+"(вместо имени пустая строка)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$ B<./a.out>\n"
+"Name: \"\" (9 segments)\n"
+" 0: [ 0x400040; memsz: 1f8] flags: 0x5; PT_PHDR\n"
+" 1: [ 0x400238; memsz: 1c] flags: 0x4; PT_INTERP\n"
+" 2: [ 0x400000; memsz: ac4] flags: 0x5; PT_LOAD\n"
+" 3: [ 0x600e10; memsz: 240] flags: 0x6; PT_LOAD\n"
+" 4: [ 0x600e28; memsz: 1d0] flags: 0x6; PT_DYNAMIC\n"
+" 5: [ 0x400254; memsz: 44] flags: 0x4; PT_NOTE\n"
+" 6: [ 0x400970; memsz: 3c] flags: 0x4; PT_GNU_EH_FRAME\n"
+" 7: [ (nil); memsz: 0] flags: 0x6; PT_GNU_STACK\n"
+" 8: [ 0x600e10; memsz: 1f0] flags: 0x4; PT_GNU_RELRO\n"
+"Name: \"linux-vdso.so.1\" (4 segments)\n"
+" 0: [0x7ffc6edd1000; memsz: e89] flags: 0x5; PT_LOAD\n"
+" 1: [0x7ffc6edd1360; memsz: 110] flags: 0x4; PT_DYNAMIC\n"
+" 2: [0x7ffc6edd17b0; memsz: 3c] flags: 0x4; PT_NOTE\n"
+" 3: [0x7ffc6edd17ec; memsz: 3c] flags: 0x4; PT_GNU_EH_FRAME\n"
+"Name: \"/lib64/libc.so.6\" (10 segments)\n"
+" 0: [0x7f55712ce040; memsz: 230] flags: 0x5; PT_PHDR\n"
+" 1: [0x7f557145b980; memsz: 1c] flags: 0x4; PT_INTERP\n"
+" 2: [0x7f55712ce000; memsz: 1b6a5c] flags: 0x5; PT_LOAD\n"
+" 3: [0x7f55716857a0; memsz: 9240] flags: 0x6; PT_LOAD\n"
+" 4: [0x7f5571688b80; memsz: 1f0] flags: 0x6; PT_DYNAMIC\n"
+" 5: [0x7f55712ce270; memsz: 44] flags: 0x4; PT_NOTE\n"
+" 6: [0x7f55716857a0; memsz: 78] flags: 0x4; PT_TLS\n"
+" 7: [0x7f557145b99c; memsz: 544c] flags: 0x4; PT_GNU_EH_FRAME\n"
+" 8: [0x7f55712ce000; memsz: 0] flags: 0x6; PT_GNU_STACK\n"
+" 9: [0x7f55716857a0; memsz: 3860] flags: 0x4; PT_GNU_RELRO\n"
+"Name: \"/lib64/ld-linux-x86-64.so.2\" (7 segments)\n"
+" 0: [0x7f557168f000; memsz: 20828] flags: 0x5; PT_LOAD\n"
+" 1: [0x7f55718afba0; memsz: 15a8] flags: 0x6; PT_LOAD\n"
+" 2: [0x7f55718afe10; memsz: 190] flags: 0x6; PT_DYNAMIC\n"
+" 3: [0x7f557168f1c8; memsz: 24] flags: 0x4; PT_NOTE\n"
+" 4: [0x7f55716acec4; memsz: 604] flags: 0x4; PT_GNU_EH_FRAME\n"
+" 5: [0x7f557168f000; memsz: 0] flags: 0x6; PT_GNU_STACK\n"
+" 6: [0x7f55718afba0; memsz: 460] flags: 0x4; PT_GNU_RELRO\n"
+msgstr ""
+"$ B<./a.out>\n"
+"Имя: \"\" (9 сегментов)\n"
+" 0: [ 0x400040; memsz: 1f8] flags: 0x5; PT_PHDR\n"
+" 1: [ 0x400238; memsz: 1c] flags: 0x4; PT_INTERP\n"
+" 2: [ 0x400000; memsz: ac4] flags: 0x5; PT_LOAD\n"
+" 3: [ 0x600e10; memsz: 240] flags: 0x6; PT_LOAD\n"
+" 4: [ 0x600e28; memsz: 1d0] flags: 0x6; PT_DYNAMIC\n"
+" 5: [ 0x400254; memsz: 44] flags: 0x4; PT_NOTE\n"
+" 6: [ 0x400970; memsz: 3c] flags: 0x4; PT_GNU_EH_FRAME\n"
+" 7: [ (nil); memsz: 0] flags: 0x6; PT_GNU_STACK\n"
+" 8: [ 0x600e10; memsz: 1f0] flags: 0x4; PT_GNU_RELRO\n"
+"Имя: \"linux-vdso.so.1\" (4 сегментов)\n"
+" 0: [0x7ffc6edd1000; memsz: e89] flags: 0x5; PT_LOAD\n"
+" 1: [0x7ffc6edd1360; memsz: 110] flags: 0x4; PT_DYNAMIC\n"
+" 2: [0x7ffc6edd17b0; memsz: 3c] flags: 0x4; PT_NOTE\n"
+" 3: [0x7ffc6edd17ec; memsz: 3c] flags: 0x4; PT_GNU_EH_FRAME\n"
+"Имя: \"/lib64/libc.so.6\" (10 сегментов)\n"
+" 0: [0x7f55712ce040; memsz: 230] flags: 0x5; PT_PHDR\n"
+" 1: [0x7f557145b980; memsz: 1c] flags: 0x4; PT_INTERP\n"
+" 2: [0x7f55712ce000; memsz: 1b6a5c] flags: 0x5; PT_LOAD\n"
+" 3: [0x7f55716857a0; memsz: 9240] flags: 0x6; PT_LOAD\n"
+" 4: [0x7f5571688b80; memsz: 1f0] flags: 0x6; PT_DYNAMIC\n"
+" 5: [0x7f55712ce270; memsz: 44] flags: 0x4; PT_NOTE\n"
+" 6: [0x7f55716857a0; memsz: 78] flags: 0x4; PT_TLS\n"
+" 7: [0x7f557145b99c; memsz: 544c] flags: 0x4; PT_GNU_EH_FRAME\n"
+" 8: [0x7f55712ce000; memsz: 0] flags: 0x6; PT_GNU_STACK\n"
+" 9: [0x7f55716857a0; memsz: 3860] flags: 0x4; PT_GNU_RELRO\n"
+"Имя: \"/lib64/ld-linux-x86-64.so.2\" (7 сегментов)\n"
+" 0: [0x7f557168f000; memsz: 20828] flags: 0x5; PT_LOAD\n"
+" 1: [0x7f55718afba0; memsz: 15a8] flags: 0x6; PT_LOAD\n"
+" 2: [0x7f55718afe10; memsz: 190] flags: 0x6; PT_DYNAMIC\n"
+" 3: [0x7f557168f1c8; memsz: 24] flags: 0x4; PT_NOTE\n"
+" 4: [0x7f55716acec4; memsz: 604] flags: 0x4; PT_GNU_EH_FRAME\n"
+" 5: [0x7f557168f000; memsz: 0] flags: 0x6; PT_GNU_STACK\n"
+" 6: [0x7f55718afba0; memsz: 460] flags: 0x4; PT_GNU_RELRO\n"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source"
+msgstr "Исходный код программы"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid ""
+#| " for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++) {\n"
+#| " p_type = info-E<gt>dlpi_phdr[j].p_type;\n"
+#| " type = (p_type == PT_LOAD) ? \"PT_LOAD\" :\n"
+#| " (p_type == PT_DYNAMIC) ? \"PT_DYNAMIC\" :\n"
+#| " (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+#| " (p_type == PT_NOTE) ? \"PT_NOTE\" :\n"
+#| " (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+#| " (p_type == PT_PHDR) ? \"PT_PHDR\" :\n"
+#| " (p_type == PT_TLS) ? \"PT_TLS\" :\n"
+#| " (p_type == PT_GNU_EH_FRAME) ? \"PT_GNU_EH_FRAME\" :\n"
+#| " (p_type == PT_GNU_STACK) ? \"PT_GNU_STACK\" :\n"
+#| " (p_type == PT_GNU_RELRO) ? \"PT_GNU_RELRO\" : NULL;\n"
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>link.hE<gt>\n"
+"#include E<lt>stdint.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"\\&\n"
+"static int\n"
+"callback(struct dl_phdr_info *info, size_t size, void *data)\n"
+"{\n"
+" char *type;\n"
+" int p_type;\n"
+"\\&\n"
+" printf(\"Name: \\e\"%s\\e\" (%d segments)\\en\", info-E<gt>dlpi_name,\n"
+" info-E<gt>dlpi_phnum);\n"
+"\\&\n"
+" for (size_t j = 0; j E<lt> info-E<gt>dlpi_phnum; j++) {\n"
+" p_type = info-E<gt>dlpi_phdr[j].p_type;\n"
+" type = (p_type == PT_LOAD) ? \"PT_LOAD\" :\n"
+" (p_type == PT_DYNAMIC) ? \"PT_DYNAMIC\" :\n"
+" (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+" (p_type == PT_NOTE) ? \"PT_NOTE\" :\n"
+" (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+" (p_type == PT_PHDR) ? \"PT_PHDR\" :\n"
+" (p_type == PT_TLS) ? \"PT_TLS\" :\n"
+" (p_type == PT_GNU_EH_FRAME) ? \"PT_GNU_EH_FRAME\" :\n"
+" (p_type == PT_GNU_STACK) ? \"PT_GNU_STACK\" :\n"
+" (p_type == PT_GNU_RELRO) ? \"PT_GNU_RELRO\" : NULL;\n"
+"\\&\n"
+" printf(\" %2zu: [%14p; memsz:%7jx] flags: %#jx; \", j,\n"
+" (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr),\n"
+" (uintmax_t) info-E<gt>dlpi_phdr[j].p_memsz,\n"
+" (uintmax_t) info-E<gt>dlpi_phdr[j].p_flags);\n"
+" if (type != NULL)\n"
+" printf(\"%s\\en\", type);\n"
+" else\n"
+" printf(\"[other (%#x)]\\en\", p_type);\n"
+" }\n"
+"\\&\n"
+" return 0;\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(void)\n"
+"{\n"
+" dl_iterate_phdr(callback, NULL);\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++) {\n"
+" p_type = info-E<gt>dlpi_phdr[j].p_type;\n"
+" type = (p_type == PT_LOAD) ? \"PT_LOAD\" :\n"
+" (p_type == PT_DYNAMIC) ? \"PT_DYNAMIC\" :\n"
+" (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+" (p_type == PT_NOTE) ? \"PT_NOTE\" :\n"
+" (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+" (p_type == PT_PHDR) ? \"PT_PHDR\" :\n"
+" (p_type == PT_TLS) ? \"PT_TLS\" :\n"
+" (p_type == PT_GNU_EH_FRAME) ? \"PT_GNU_EH_FRAME\" :\n"
+" (p_type == PT_GNU_STACK) ? \"PT_GNU_STACK\" :\n"
+" (p_type == PT_GNU_RELRO) ? \"PT_GNU_RELRO\" : NULL;\n"
+
+#. SRC END
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "СМ. ТАКЖЕ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dladdr>(3), B<dlopen>(3), "
+"B<elf>(5), B<ld.so>(8)"
+msgstr ""
+"B<ldd>(1), B<objdump>(1), B<readelf>(1), B<dladdr>(3), B<dlopen>(3), "
+"B<elf>(5), B<ld.so>(8)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<Executable and Linking Format Specification>, available at various "
+"locations online."
+msgstr "I<Executable and Linking Format Specification> в веб."
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr "5 февраля 2023 г."
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Linux man-pages 6.03"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"struct dl_phdr_info {\n"
+" ElfW(Addr) dlpi_addr; /* Base address of object */\n"
+" const char *dlpi_name; /* (Null-terminated) name of\n"
+" object */\n"
+" const ElfW(Phdr) *dlpi_phdr; /* Pointer to array of\n"
+" ELF program headers\n"
+" for this object */\n"
+" ElfW(Half) dlpi_phnum; /* # of items in I<dlpi_phdr> */\n"
+msgstr ""
+"struct dl_phdr_info {\n"
+" ElfW(Addr) dlpi_addr; /* базовый адрес объекта */\n"
+" const char *dlpi_name; /* имя объекта\n"
+" (оканчивается Null) */\n"
+" const ElfW(Phdr) *dlpi_phdr; /* указатель на массив\n"
+" программных заголовков ELF\n"
+" этого объекта */\n"
+" ElfW(Half) dlpi_phnum; /* кол-во элементов в I<dlpi_phdr> */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* The following fields were added in glibc 2.4, after the first\n"
+" version of this structure was available. Check the I<size>\n"
+" argument passed to the dl_iterate_phdr callback to determine\n"
+" whether or not each later member is available. */\n"
+msgstr ""
+" /* Следующие поля были добавлены в glibc 2.4, после опубликования\n"
+" первой версии этой структуры. Из аргумента I<size>,\n"
+" передаваемом в dl_iterate_phdr, можно определить\n"
+" были ли добавлены новые члены. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " unsigned long long int dlpi_adds;\n"
+#| " /* Incremented when a new object may\n"
+#| " have been added */\n"
+#| " unsigned long long int dlpi_subs;\n"
+#| " /* Incremented when an object may\n"
+#| " have been removed */\n"
+#| " size_t dlpi_tls_modid;\n"
+#| " /* If there is a PT_TLS segment, its module\n"
+#| " ID as used in TLS relocations, else zero */\n"
+#| " void *dlpi_tls_data;\n"
+#| " /* The address of the calling thread's instance\n"
+#| " of this module's PT_TLS segment, if it has\n"
+#| " one and it has been allocated in the calling\n"
+#| " thread, otherwise a null pointer */\n"
+#| "};\n"
+msgid ""
+" unsigned long long dlpi_adds;\n"
+" /* Incremented when a new object may\n"
+" have been added */\n"
+" unsigned long long dlpi_subs;\n"
+" /* Incremented when an object may\n"
+" have been removed */\n"
+" size_t dlpi_tls_modid;\n"
+" /* If there is a PT_TLS segment, its module\n"
+" ID as used in TLS relocations, else zero */\n"
+" void *dlpi_tls_data;\n"
+" /* The address of the calling thread\\[aq]s instance\n"
+" of this module\\[aq]s PT_TLS segment, if it has\n"
+" one and it has been allocated in the calling\n"
+" thread, otherwise a null pointer */\n"
+"};\n"
+msgstr ""
+" unsigned long long int dlpi_adds;\n"
+" /* увеличивается, когда мог быть\n"
+" добавлен новый объект */\n"
+" unsigned long long int dlpi_subs;\n"
+" /* увеличивается, когда мог быть\n"
+" удалён новый объект */\n"
+" size_t dlpi_tls_modid;\n"
+" /* если существует сегмент PT_TLS, это его\n"
+" ID модуля, используемый в\n"
+" перестановках TLS, иначе 0 */\n"
+" void *dlpi_tls_data;\n"
+" /* адрес экземпляра вызывающей нити\n"
+" сегмента PT_TLS этого модуля, если он есть\n"
+" и был выделен в вызывающей нити,\n"
+" иначе указатель null */\n"
+"};\n"
+
+#. type: Plain text
+#: debian-bookworm
+#, fuzzy
+#| msgid ""
+#| "B<dl_iterate_phdr>() has been supported in glibc since version 2.2.4."
+msgid "B<dl_iterate_phdr>() has been supported since glibc 2.2.4."
+msgstr "Функция B<dl_iterate_phdr>() доступна в glibc начиная с версии 2.2.4."
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"The B<dl_iterate_phdr>() function is not specified in any standard. "
+"Various other systems provide a version of this function, although details "
+"of the returned I<dl_phdr_info> structure differ. On the BSDs and Solaris, "
+"the structure includes the fields I<dlpi_addr>, I<dlpi_name>, I<dlpi_phdr>, "
+"and I<dlpi_phnum> in addition to other implementation-specific fields."
+msgstr ""
+"Функция B<dl_iterate_phdr>() не описана в каком-либо стандарте. Эта функция "
+"есть в некоторых других системах, при чём возвращаемая структура "
+"I<dl_phdr_info> имеет другой формат. В BSD и Solaris, в структуре есть поля "
+"I<dlpi_addr>, I<dlpi_name>, I<dlpi_phdr> и I<dlpi_phnum> (помимо других "
+"внесённых реализацией полей)."
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| "#define _GNU_SOURCE\n"
+#| "#include E<lt>dlfcn.hE<gt>\n"
+#| "#include E<lt>link.hE<gt>\n"
+#| "#include E<lt>stdio.hE<gt>\n"
+#| "#include E<lt>stdlib.hE<gt>\n"
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>link.hE<gt>\n"
+"#include E<lt>stdint.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+msgstr ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>dlfcn.hE<gt>\n"
+"#include E<lt>link.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| "static int\n"
+#| "callback(struct dl_phdr_info *info, size_t size, void *data)\n"
+#| "{\n"
+#| " char *type;\n"
+#| " int p_type, j;\n"
+msgid ""
+"static int\n"
+"callback(struct dl_phdr_info *info, size_t size, void *data)\n"
+"{\n"
+" char *type;\n"
+" int p_type;\n"
+msgstr ""
+"static int\n"
+"callback(struct dl_phdr_info *info, size_t size, void *data)\n"
+"{\n"
+" char *type;\n"
+" int p_type, j;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" printf(\"Name: \\e\"%s\\e\" (%d segments)\\en\", info-E<gt>dlpi_name,\n"
+" info-E<gt>dlpi_phnum);\n"
+msgstr ""
+" printf(\"Имя: \\e\"%s\\e\" (%d сегментов)\\en\", info-E<gt>dlpi_name,\n"
+" info-E<gt>dlpi_phnum);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++) {\n"
+#| " p_type = info-E<gt>dlpi_phdr[j].p_type;\n"
+#| " type = (p_type == PT_LOAD) ? \"PT_LOAD\" :\n"
+#| " (p_type == PT_DYNAMIC) ? \"PT_DYNAMIC\" :\n"
+#| " (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+#| " (p_type == PT_NOTE) ? \"PT_NOTE\" :\n"
+#| " (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+#| " (p_type == PT_PHDR) ? \"PT_PHDR\" :\n"
+#| " (p_type == PT_TLS) ? \"PT_TLS\" :\n"
+#| " (p_type == PT_GNU_EH_FRAME) ? \"PT_GNU_EH_FRAME\" :\n"
+#| " (p_type == PT_GNU_STACK) ? \"PT_GNU_STACK\" :\n"
+#| " (p_type == PT_GNU_RELRO) ? \"PT_GNU_RELRO\" : NULL;\n"
+msgid ""
+" for (size_t j = 0; j E<lt> info-E<gt>dlpi_phnum; j++) {\n"
+" p_type = info-E<gt>dlpi_phdr[j].p_type;\n"
+" type = (p_type == PT_LOAD) ? \"PT_LOAD\" :\n"
+" (p_type == PT_DYNAMIC) ? \"PT_DYNAMIC\" :\n"
+" (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+" (p_type == PT_NOTE) ? \"PT_NOTE\" :\n"
+" (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+" (p_type == PT_PHDR) ? \"PT_PHDR\" :\n"
+" (p_type == PT_TLS) ? \"PT_TLS\" :\n"
+" (p_type == PT_GNU_EH_FRAME) ? \"PT_GNU_EH_FRAME\" :\n"
+" (p_type == PT_GNU_STACK) ? \"PT_GNU_STACK\" :\n"
+" (p_type == PT_GNU_RELRO) ? \"PT_GNU_RELRO\" : NULL;\n"
+msgstr ""
+" for (j = 0; j E<lt> info-E<gt>dlpi_phnum; j++) {\n"
+" p_type = info-E<gt>dlpi_phdr[j].p_type;\n"
+" type = (p_type == PT_LOAD) ? \"PT_LOAD\" :\n"
+" (p_type == PT_DYNAMIC) ? \"PT_DYNAMIC\" :\n"
+" (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+" (p_type == PT_NOTE) ? \"PT_NOTE\" :\n"
+" (p_type == PT_INTERP) ? \"PT_INTERP\" :\n"
+" (p_type == PT_PHDR) ? \"PT_PHDR\" :\n"
+" (p_type == PT_TLS) ? \"PT_TLS\" :\n"
+" (p_type == PT_GNU_EH_FRAME) ? \"PT_GNU_EH_FRAME\" :\n"
+" (p_type == PT_GNU_STACK) ? \"PT_GNU_STACK\" :\n"
+" (p_type == PT_GNU_RELRO) ? \"PT_GNU_RELRO\" : NULL;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " printf(\" %2d: [%14p; memsz:%7lx] flags: 0x%x; \", j,\n"
+#| " (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr),\n"
+#| " info-E<gt>dlpi_phdr[j].p_memsz,\n"
+#| " info-E<gt>dlpi_phdr[j].p_flags);\n"
+#| " if (type != NULL)\n"
+#| " printf(\"%s\\en\", type);\n"
+#| " else\n"
+#| " printf(\"[other (0x%x)]\\en\", p_type);\n"
+#| " }\n"
+msgid ""
+" printf(\" %2zu: [%14p; memsz:%7jx] flags: %#jx; \", j,\n"
+" (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr),\n"
+" (uintmax_t) info-E<gt>dlpi_phdr[j].p_memsz,\n"
+" (uintmax_t) info-E<gt>dlpi_phdr[j].p_flags);\n"
+" if (type != NULL)\n"
+" printf(\"%s\\en\", type);\n"
+" else\n"
+" printf(\"[other (%#x)]\\en\", p_type);\n"
+" }\n"
+msgstr ""
+" printf(\" %2d: [%14p; memsz:%7lx] flags: 0x%x; \", j,\n"
+" (void *) (info-E<gt>dlpi_addr + info-E<gt>dlpi_phdr[j].p_vaddr),\n"
+" info-E<gt>dlpi_phdr[j].p_memsz,\n"
+" info-E<gt>dlpi_phdr[j].p_flags);\n"
+" if (type != NULL)\n"
+" printf(\"%s\\en\", type);\n"
+" else\n"
+" printf(\"[другой (0x%x)]\\en\", p_type);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" return 0;\n"
+"}\n"
+msgstr ""
+" return 0;\n"
+"}\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| "int\n"
+#| "main(int argc, char *argv[])\n"
+#| "{\n"
+#| " dl_iterate_phdr(callback, NULL);\n"
+msgid ""
+"int\n"
+"main(void)\n"
+"{\n"
+" dl_iterate_phdr(callback, NULL);\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" dl_iterate_phdr(callback, NULL);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-07-20"
+msgstr "20 июля 2023 г."
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr "Linux man-pages 6.05.01"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr "30 марта 2023 г."
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr "Linux man-pages 6.04"