summaryrefslogtreecommitdiffstats
path: root/po/ru/man3/dlopen.3.po
diff options
context:
space:
mode:
Diffstat (limited to 'po/ru/man3/dlopen.3.po')
-rw-r--r--po/ru/man3/dlopen.3.po1485
1 files changed, 1485 insertions, 0 deletions
diff --git a/po/ru/man3/dlopen.3.po b/po/ru/man3/dlopen.3.po
new file mode 100644
index 00000000..f5fa301c
--- /dev/null
+++ b/po/ru/man3/dlopen.3.po
@@ -0,0 +1,1485 @@
+# 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 "dlopen()"
+msgid "dlopen"
+msgstr "dlopen()"
+
+#. 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 "dlclose, dlopen, dlmopen - open and close a shared object"
+msgstr "dlclose, dlopen, dlmopen - открывает и закрывает общий объект"
+
+#. 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 "Dynamic linking library (I<libdl>, I<-ldl>)"
+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<#include E<lt>dlfcn.hE<gt>>\n"
+msgstr "B<#include E<lt>dlfcn.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<void *dlopen(const char *>I<filename>B<, int >I<flags>B<);>"
+msgid ""
+"B<void *dlopen(const char *>I<filename>B<, int >I<flags>B<);>\n"
+"B<int dlclose(void *>I<handle>B<);>\n"
+msgstr "B<void *dlopen(const char *>I<filename>B<, int >I<flags>B<);>"
+
+#. 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<#define _GNU_SOURCE>"
+msgid "B<#define _GNU_SOURCE>\n"
+msgstr "B<#define _GNU_SOURCE>"
+
+#. 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<void *dlmopen (Lmid_t >I<lmid>B<, const char *>I<filename>B<, int >I<flags>B<);>"
+msgid "B<void *dlmopen(Lmid_t >I<lmid>B<, const char *>I<filename>B<, int >I<flags>B<);>\n"
+msgstr "B<void *dlmopen (Lmid_t >I<lmid>B<, const char *>I<filename>B<, int >I<flags>B<);>"
+
+#. 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: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "dlopen()"
+msgstr "dlopen()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The function B<dlopen>() loads the dynamic shared object (shared library) "
+"file named by the null-terminated string I<filename> and returns an opaque "
+"\"handle\" for the loaded object. This handle is employed with other "
+"functions in the dlopen API, such as B<dlsym>(3), B<dladdr>(3), "
+"B<dlinfo>(3), and B<dlclose>()."
+msgstr ""
+"Функция B<dlopen>() загружает динамический общий объект (общую библиотеку) "
+"из файла, имя которого указано в строке I<filename> (завершается null) и "
+"возвращает скрытный описатель на загруженный объект. Данный описатель "
+"используется другими функциями программного интерфейса dlopen, такими как "
+"B<dlsym>(3), B<dladdr>(3), B<dlinfo>(3) и B<dlclose>()."
+
+#. FIXME On Solaris, when handle is NULL, we seem to get back
+#. a handle for (something like) the root of the namespace.
+#. The point here is that if we do a dlmopen(LM_ID_NEWLM), then
+#. the filename==NULL case returns a different handle than
+#. in the initial namespace. But, on glibc, the same handle is
+#. returned. This is probably a bug in glibc.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If I<filename> is NULL, then the returned handle is for the main program. "
+"If I<filename> contains a slash (\"/\"), then it is interpreted as a "
+"(relative or absolute) pathname. Otherwise, the dynamic linker searches for "
+"the object as follows (see B<ld.so>(8) for further details):"
+msgstr ""
+"Если I<filename> равно NULL, то возвращается описатель основной программы. "
+"Если I<filename> содержит косую черту («/»), то это воспринимается как имя с "
+"путём (относительным или абсолютным). Иначе динамический компоновщик ищет "
+"объект в следующих местах (подробности смотрите в B<ld.so>(8)):"
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr "\\[bu]"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "(ELF only) If the executable file for the calling program contains a "
+#| "DT_RPATH tag, and does not contain a DT_RUNPATH tag, then the directories "
+#| "listed in the DT_RPATH tag are searched."
+msgid ""
+"(ELF only) If the calling object (i.e., the shared library or executable "
+"from which B<dlopen>() is called) contains a DT_RPATH tag, and does not "
+"contain a DT_RUNPATH tag, then the directories listed in the DT_RPATH tag "
+"are searched."
+msgstr ""
+"(только в ELF) Если исполняемый файл вызывающей программы содержит метку "
+"DT_RPATH, т не содержит метки DT_RUNPATH, то производится поиск в каталогах, "
+"описанных в метке DT_RPATH."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If, at the time that the program was started, the environment variable "
+"B<LD_LIBRARY_PATH> was defined to contain a colon-separated list of "
+"directories, then these are searched. (As a security measure, this variable "
+"is ignored for set-user-ID and set-group-ID programs.)"
+msgstr ""
+"Если при запуске программы была определена переменная окружения "
+"B<LD_LIBRARY_PATH>, содержащая список каталогов через двоеточие, то "
+"производится поиск в этих каталогах (по соображениям безопасности эта "
+"переменная игнорируется для программ с установленными битами set-user-ID и "
+"set-group-ID)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "(ELF only) If the executable file for the calling program contains a "
+#| "DT_RUNPATH tag, then the directories listed in that tag are searched."
+msgid ""
+"(ELF only) If the calling object contains a DT_RUNPATH tag, then the "
+"directories listed in that tag are searched."
+msgstr ""
+"(только в ELF) Если исполняемый файл вызывающей программы содержит метку "
+"DT_RUNPATH, то производится поиск по каталогам, перечисленным в этой метке."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The cache file I</etc/ld.so.cache> (maintained by B<ldconfig>(8)) is "
+"checked to see whether it contains an entry for I<filename>."
+msgstr ""
+"Производится проверка в кэширующем файле I</etc/ld.so.cache> (обслуживается "
+"B<ldconfig>(8)) на предмет наличия записи для I<filename>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The directories I</lib> and I</usr/lib> are searched (in that order)."
+msgstr ""
+"Просматриваются каталоги I</lib> и I</usr/lib> (именно в таком порядке)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the object specified by I<filename> has dependencies on other shared "
+"objects, then these are also automatically loaded by the dynamic linker "
+"using the same rules. (This process may occur recursively, if those objects "
+"in turn have dependencies, and so on.)"
+msgstr ""
+"Если объект, указанный I<filename>, зависит от других общих объектов, то они "
+"также автоматически загружаются динамическим компоновщиком согласно этим же "
+"правилам (процесс может выполняться рекурсивно, если эти объекты, в свою "
+"очередь, зависят от других, и так далее)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "One of the following two values must be included in I<flags>:"
+msgstr "В I<flags> должно быть одно из двух следующих значений:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<RTLD_LAZY>"
+msgstr "B<RTLD_LAZY>"
+
+#. commit 12b5b6b7f78ea111e89bbf638294a5413c791072
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Perform lazy binding. Resolve symbols only as the code that references them "
+"is executed. If the symbol is never referenced, then it is never resolved. "
+"(Lazy binding is performed only for function references; references to "
+"variables are always immediately bound when the shared object is loaded.) "
+"Since glibc 2.1.1, this flag is overridden by the effect of the "
+"B<LD_BIND_NOW> environment variable."
+msgstr ""
+"Выполнять позднее связывание (lazy binding). Выполняется поиск только тех "
+"символов, на которые есть ссылки из кода. Если на символ никогда не "
+"ссылаются, то он никогда не будет разрешён (позднее связывание выполняется "
+"только при ссылке на функции; ссылки на переменные всегда привязываются "
+"сразу при загрузке общего объекта). Начиная с libc 2.1.1, этот флаг "
+"заменяется на значение переменной окружения B<LD_BIND_NOW>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<RTLD_NOW>"
+msgstr "B<RTLD_NOW>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this value is specified, or the environment variable B<LD_BIND_NOW> is "
+"set to a nonempty string, all undefined symbols in the shared object are "
+"resolved before B<dlopen>() returns. If this cannot be done, an error is "
+"returned."
+msgstr ""
+"Если указано данное значение или переменная окружения B<LD_BIND_NOW> не "
+"пуста, то все неопределённые символы в общем объекте ищутся до возврата из "
+"B<dlopen>(). Если этого сделать не удаётся, то возвращается ошибка."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Zero or more of the following values may also be ORed in I<flags>:"
+msgstr ""
+"Также в В I<flags> может быть ноль или более значение, объединяемых по ИЛИ:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<RTLD_GLOBAL>"
+msgstr "B<RTLD_GLOBAL>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The symbols defined by this shared object will be made available for symbol "
+"resolution of subsequently loaded shared objects."
+msgstr ""
+"Символы, определённые в этом общем объекте, будут доступны при поиске "
+"символов, для общих объектов, загружаемых далее."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<RTLD_LOCAL>"
+msgstr "B<RTLD_LOCAL>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This is the converse of B<RTLD_GLOBAL>, and the default if neither flag is "
+"specified. Symbols defined in this shared object are not made available to "
+"resolve references in subsequently loaded shared objects."
+msgstr ""
+"Противоположность B<RTLD_GLOBAL>, используется по умолчанию, если не задано "
+"ни одного флага. Символы, определённые в этом общем объекте, не будут "
+"доступны при разрешении ссылок для общих объектов, загружаемых далее."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<RTLD_NODELETE> (since glibc 2.2)"
+msgstr "B<RTLD_NODELETE> (начиная с glibc 2.2)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Do not unload the shared object during B<dlclose>(). Consequently, the "
+"object's static and global variables are not reinitialized if the object is "
+"reloaded with B<dlopen>() at a later time."
+msgstr ""
+"Не выгружать общий объект при B<dlclose>(). В результате статические и "
+"глобальные переменные объекта не инициализируются повторно, если объект "
+"загружается снова по B<dlopen>()."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<RTLD_NOLOAD> (since glibc 2.2)"
+msgstr "B<RTLD_NOLOAD> (начиная с glibc 2.2)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Don't load the shared object. This can be used to test if the object is "
+"already resident (B<dlopen>() returns NULL if it is not, or the object's "
+"handle if it is resident). This flag can also be used to promote the flags "
+"on a shared object that is already loaded. For example, a shared object "
+"that was previously loaded with B<RTLD_LOCAL> can be reopened with "
+"B<RTLD_NOLOAD\\ |\\ RTLD_GLOBAL>."
+msgstr ""
+"Не загружать общий объект. Это можно использовать для тестирования того, что "
+"объект уже загружен (B<dlopen>() возвращает NULL, если нет, или описатель "
+"объекта в противном случае). Данный флаг также можно использовать для "
+"изменения флагов уже загруженного объекта. Например, общий объект, который "
+"был загружен ранее с B<RTLD_LOCAL>, можно открыть повторно с B<RTLD_NOLOAD\\ "
+"|\\ RTLD_GLOBAL>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<RTLD_DEEPBIND> (since glibc 2.3.4)"
+msgstr "B<RTLD_DEEPBIND> (начиная с glibc 2.3.4)"
+
+#. Inimitably described by UD in
+#. http://sources.redhat.com/ml/libc-hacker/2004-09/msg00083.html.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Place the lookup scope of the symbols in this shared object ahead of the "
+"global scope. This means that a self-contained object will use its own "
+"symbols in preference to global symbols with the same name contained in "
+"objects that have already been loaded."
+msgstr ""
+"Задать объекта, в котором поиск символов будет осуществляться перед поиском "
+"в области глобальных символов. Это означает, что самодостаточный объект "
+"будет использовать свои собственные символы вместо глобальных символов с тем "
+"же именем, содержащихся в объектах, которые уже были загружены."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "If I<filename> is NULL, then the returned handle is for the main "
+#| "program. When given to B<dlsym>(), this handle causes a search for a "
+#| "symbol in the main program, followed by all shared objects loaded at "
+#| "program startup, and then all shared objects loaded by B<dlopen>() with "
+#| "the flag B<RTLD_GLOBAL>."
+msgid ""
+"If I<filename> is NULL, then the returned handle is for the main program. "
+"When given to B<dlsym>(3), this handle causes a search for a symbol in the "
+"main program, followed by all shared objects loaded at program startup, and "
+"then all shared objects loaded by B<dlopen>() with the flag B<RTLD_GLOBAL>."
+msgstr ""
+"Если значение I<filename> равно NULL, то возвращается описатель для главной "
+"программы. При передаче в B<dlsym>(), этот описатель вызывает поиск символа "
+"в главной программе, затем во все общих объектах, загруженных при запуске "
+"программы, и затем во всех общих объектах, загруженных B<dlopen>() с флагом "
+"B<RTLD_GLOBAL>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Symbol references in the shared object are resolved using (in order): "
+"symbols in the link map of objects loaded for the main program and its "
+"dependencies; symbols in shared objects (and their dependencies) that were "
+"previously opened with B<dlopen>() using the B<RTLD_GLOBAL> flag; and "
+"definitions in the shared object itself (and any dependencies that were "
+"loaded for that object)."
+msgstr ""
+"Поиск символьных ссылок общего объекта производится следующим образом (в "
+"таком порядке): символы в карте ссылок объектов, загруженных для главной "
+"программы и её зависимостей; символы в общих объектах (и их зависимостях), "
+"которые были открыты ранее с помощью B<dlopen>() и флага B<RTLD_GLOBAL>; "
+"определения в самом общем объекте (и любых зависимостях, которые были "
+"загружены для этого объекта)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Any global symbols in the executable that were placed into its dynamic "
+"symbol table by B<ld>(1) can also be used to resolve references in a "
+"dynamically loaded shared object. Symbols may be placed in the dynamic "
+"symbol table either because the executable was linked with the flag \"-"
+"rdynamic\" (or, synonymously, \"--export-dynamic\"), which causes all of the "
+"executable's global symbols to be placed in the dynamic symbol table, or "
+"because B<ld>(1) noted a dependency on a symbol in another object during "
+"static linking."
+msgstr ""
+"Все глобальные символы в исполняемом файле, которые были помещены в его "
+"таблицу динамических символов посредством B<ld>(1), также могут быть "
+"использованы при поиске ссылок динамически загружаемого общего объекта. "
+"Символы могут попасть в таблицу динамических символов из-за того, что "
+"исполняемый файл был скомпонован с флагом «-rdynamic» (или его синонимом «--"
+"export-dynamic»), который помещает что все глобальные символы исполняемого "
+"файла в таблицу динамических символов, или из-за того, что B<ld>(1) "
+"определил зависимость от символа из другого объекта при статической "
+"компоновке."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the same shared object is opened again with B<dlopen>(), the same object "
+"handle is returned. The dynamic linker maintains reference counts for "
+"object handles, so a dynamically loaded shared object is not deallocated "
+"until B<dlclose>() has been called on it as many times as B<dlopen>() has "
+"succeeded on it. Constructors (see below) are called only when the object "
+"is actually loaded into memory (i.e., when the reference count increases to "
+"1)."
+msgstr ""
+"Если общий объект загружается с помощью B<dlopen>() повторно, то "
+"возвращается тот же описатель на объект. Динамический компоновщик ведёт "
+"счётчик ссылок для описателей объектов, поэтому динамически загруженный "
+"общий объект не высвобождается B<dlclose>() до тех пор, пока он не будет "
+"вызвана столько же раз сколько и B<dlopen>(). Процедуры инициализации "
+"(смотрите ниже) вызываются только когда объект действительно загружается в "
+"память (т. е., когда счётчик ссылок увеличивается на 1)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A subsequent B<dlopen>() call that loads the same shared object with "
+"B<RTLD_NOW> may force symbol resolution for a shared object earlier loaded "
+"with B<RTLD_LAZY>. Similarly, an object that was previously opened with "
+"B<RTLD_LOCAL> can be promoted to B<RTLD_GLOBAL> in a subsequent B<dlopen>()."
+msgstr ""
+"Последующий вызов B<dlopen>(), загружающий тот же общий объект с флагом "
+"B<RTLD_NOW>, может привести к поиску символов для общего объекта ранее "
+"загруженного с флагом B<RTLD_LAZY>. Схожим образом объект, открытый ранее с "
+"флагом B<RTLD_LOCAL>, в последующем вызове B<dlopen>() может быть "
+"преобразован в B<RTLD_GLOBAL>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "If B<dlopen>() fails for any reason, it returns NULL."
+msgstr ""
+"Если по какой-то причине B<dlopen>() завершается неудачно, то возвращается "
+"NULL."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "dlmopen()"
+msgstr "dlmopen()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "This function performs the same task as B<dlopen>()\\(emthe I<filename> "
+#| "and I<flags> arguments, as well as the return value, are the same, except "
+#| "for the differences noted below."
+msgid ""
+"This function performs the same task as B<dlopen>()\\[em]the I<filename> and "
+"I<flags> arguments, as well as the return value, are the same, except for "
+"the differences noted below."
+msgstr ""
+"Данная функция делает то же самое что и B<dlopen>(), аргументы I<filename> и "
+"I<flags>, а также возвращаемое значение — такие же, отличия описаны далее."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<dlmopen>() function differs from B<dlopen>() primarily in that it "
+"accepts an additional argument, I<lmid>, that specifies the link-map list "
+"(also referred to as a I<namespace>) in which the shared object should be "
+"loaded. (By comparison, B<dlopen>() adds the dynamically loaded shared "
+"object to the same namespace as the shared object from which the "
+"B<dlopen>() call is made.) The I<Lmid_t> type is an opaque handle that "
+"refers to a namespace."
+msgstr ""
+"Функция B<dlmopen>() отличается от B<dlopen>(), главным образом в том, что "
+"имеет дополнительный аргумент I<lmid>, в котором задаётся список карт связей "
+"(link-map list, ещё называемый I<пространством имён>), в который должен быть "
+"загружен общий объект (B<dlopen>() добавляет динамически загружаемый общий "
+"объект в тоже пространство имён, в котором находится общий объект, из "
+"которого был вызван B<dlopen>()). Тип I<Lmid_t> является скрытым описателем, "
+"который ссылается на пространство имён."
+
+#. FIXME: Is using dlinfo() RTLD_DI_LMID the right technique?
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<lmid> argument is either the ID of an existing namespace (which can be "
+"obtained using the B<dlinfo>(3) B<RTLD_DI_LMID> request) or one of the "
+"following special values:"
+msgstr ""
+"В аргументе I<lmid> может быть указан ID существующего пространства имён "
+"(который может быть получен с помощью B<dlinfo>(3) с запросом "
+"B<RTLD_DI_LMID>) или одно из следующих специальных значений:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<LM_ID_BASE>"
+msgstr "B<LM_ID_BASE>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Load the shared object in the initial namespace (i.e., the application's "
+"namespace)."
+msgstr ""
+"Загрузить общий объект в начальное пространство имён (т. е., в пространство "
+"имён приложения)."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<LM_ID_NEWLM>"
+msgstr "B<LM_ID_NEWLM>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Create a new namespace and load the shared object in that namespace. The "
+"object must have been correctly linked to reference all of the other shared "
+"objects that it requires, since the new namespace is initially empty."
+msgstr ""
+"Создать новое пространство имён и загрузить в него общий объект. Объект "
+"должен быть корректно скомпонован с ссылками на все остальные общие объекты, "
+"которые ему требуются, так как новое пространство имён изначально пустое."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If I<filename> is NULL, then the only permitted value for I<lmid> is "
+"B<LM_ID_BASE>."
+msgstr ""
+"Если I<filename> равно NULL, то для I<lmid> разрешено только значение "
+"B<LM_ID_BASE>."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "dlclose()"
+msgstr "dlclose()"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The function B<dlclose>() decrements the reference count on the dynamically "
+"loaded shared object referred to by I<handle>."
+msgstr ""
+"Функция B<dlclose>() уменьшает счётчик ссылок на динамически загружаемый "
+"общий объект, на который ссылается I<handle>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the object's reference count drops to zero and no symbols in this object "
+"are required by other objects, then the object is unloaded after first "
+"calling any destructors defined for the object. (Symbols in this object "
+"might be required in another object because this object was opened with the "
+"B<RTLD_GLOBAL> flag and one of its symbols satisfied a relocation in another "
+"object.)"
+msgstr ""
+"Если счётчик ссылок достигает нуля и символы этого объекта не нужны другим "
+"объектам, то объект выгружается после первого вызова любого деструктора, "
+"определённого в объекте (символы в этом объекте могут требоваться в другом "
+"объекте из-за того, что этот объект был открыт с флагом B<RTLD_GLOBAL> и "
+"один из его символов совпадает с расположением из другого объекта)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"All shared objects that were automatically loaded when B<dlopen>() was "
+"invoked on the object referred to by I<handle> are recursively closed in the "
+"same manner."
+msgstr ""
+"Все общие объекты, которые были автоматически загружены при вызове "
+"B<dlopen>() для объекта, на который ссылается I<handle>, рекурсивно "
+"закрываются таким же способом."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A successful return from B<dlclose>() does not guarantee that the symbols "
+"associated with I<handle> are removed from the caller's address space. In "
+"addition to references resulting from explicit B<dlopen>() calls, a shared "
+"object may have been implicitly loaded (and reference counted) because of "
+"dependencies in other shared objects. Only when all references have been "
+"released can the shared object be removed from the address space."
+msgstr ""
+"Успешный возврат из B<dlclose>() не гарантирует, что символы, связанные с "
+"I<handle> удалятся из адресного пространства вызывающего. В дополнении к "
+"ссылкам, полученным из-за явного вызова B<dlopen>(), общий объект может быть "
+"загружен неявно (и увеличится счётчик ссылок), так как от него зависят "
+"другие общие объекты. Общий объект будет удалён из адресного пространства "
+"только когда будут удалены все ссылки на него."
+
+#. 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 ""
+"On success, B<dlopen>() and B<dlmopen>() return a non-NULL handle for the "
+"loaded object. On error (file could not be found, was not readable, had the "
+"wrong format, or caused errors during loading), these functions return NULL."
+msgstr ""
+"При успешном выполнении B<dlopen>() и B<dlmopen>() для загруженного объекта "
+"возвращают описатель не равный NULL. При ошибке (файл не найден, недоступен "
+"для чтения, имеет неправильный формат или возникли ошибке при загрузке) эти "
+"функции возвращают NULL."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On success, B<dlclose>() returns 0; on error, it returns a nonzero value."
+msgstr ""
+"При успешном выполнении B<dlclose>() возвращает 0; при ошибке возвращается "
+"ненулевое значение."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Errors from these functions can be diagnosed using B<dlerror>(3)."
+msgstr ""
+"Ошибки, возникшие в этих функциях, можно определить с помощью B<dlerror>(3)."
+
+#. 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<dlopen>(),\n"
+"B<dlmopen>(),\n"
+"B<dlclose>()"
+msgstr ""
+"B<dlopen>(),\n"
+"B<dlmopen>(),\n"
+"B<dlclose>()"
+
+#. 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 "STANDARDS"
+msgstr "СТАНДАРТЫ"
+
+#. type: TP
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<open>(2)"
+msgid "B<dlopen>()"
+msgstr "B<open>(2)"
+
+#. type: TQ
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<close>(2)"
+msgid "B<dlclose>()"
+msgstr "B<close>(2)"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2008."
+msgstr "POSIX.1-2008."
+
+#. type: TP
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "dlmopen()"
+msgid "B<dlmopen>()"
+msgstr "dlmopen()"
+
+#. type: TQ
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<RTLD_LOCAL>"
+msgid "B<RTLD_NOLOAD>"
+msgstr "B<RTLD_LOCAL>"
+
+#. type: TQ
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<RTLD_NOW>"
+msgid "B<RTLD_NODELETE>"
+msgstr "B<RTLD_NOW>"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "GNU."
+msgstr "GNU."
+
+#. type: TP
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid "B<RTLD_NOW>"
+msgid "B<RTLD_DEEPBIND>"
+msgstr "B<RTLD_NOW>"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Solaris."
+msgstr ""
+
+#. 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
+msgid "glibc 2.0. POSIX.1-2001."
+msgstr "glibc 2.0. POSIX.1-2001."
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "glibc 2.3.4."
+msgstr "glibc 2.3.4."
+
+#. 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: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "dlmopen() and namespaces"
+msgstr "Функция dlmopen() и пространства имён"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A link-map list defines an isolated namespace for the resolution of symbols "
+"by the dynamic linker. Within a namespace, dependent shared objects are "
+"implicitly loaded according to the usual rules, and symbol references are "
+"likewise resolved according to the usual rules, but such resolution is "
+"confined to the definitions provided by the objects that have been "
+"(explicitly and implicitly) loaded into the namespace."
+msgstr ""
+"Списком карты связей задаётся изолированное пространство имён для "
+"определения символов динамическим компоновщиком. Внутри пространства имён "
+"зависимые общие объекты неявно загружаются по обычным правилам, символьные "
+"ссылки разрешаются подобным образом, но при этом учитываются только те "
+"объекты, которые были загружены (явно и неявно) в пространство имён."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The B<dlmopen>() function permits object-load isolation\\(emthe ability "
+#| "to load a shared object in a new namespace without exposing the rest of "
+#| "the application to the symbols made available by the new object. Note "
+#| "that the use of the B<RTLD_LOCAL> flag is not sufficient for this "
+#| "purpose, since it prevents a shared object's symbols from being available "
+#| "to I<any> other shared object. In some cases, we may want to make the "
+#| "symbols provided by a dynamically loaded shared object available to (a "
+#| "subset of) other shared objects without exposing those symbols to the "
+#| "entire application. This can be achieved by using a separate namespace "
+#| "and the B<RTLD_GLOBAL> flag."
+msgid ""
+"The B<dlmopen>() function permits object-load isolation\\[em]the ability to "
+"load a shared object in a new namespace without exposing the rest of the "
+"application to the symbols made available by the new object. Note that the "
+"use of the B<RTLD_LOCAL> flag is not sufficient for this purpose, since it "
+"prevents a shared object's symbols from being available to I<any> other "
+"shared object. In some cases, we may want to make the symbols provided by a "
+"dynamically loaded shared object available to (a subset of) other shared "
+"objects without exposing those symbols to the entire application. This can "
+"be achieved by using a separate namespace and the B<RTLD_GLOBAL> flag."
+msgstr ""
+"Функция B<dlmopen>() позволяет достичь изоляции загружаемых объектов — "
+"загружает общий объект в новое пространство имён без показа символов всему "
+"приложению, а только новому объекту. Заметим, что использование флага "
+"B<RTLD_LOCAL> недостаточно для этой цели, так как он делает недоступным "
+"символы общего объекта I<любому> другому общему объекту. В некоторых случаях "
+"может понадобиться, чтобы символы динамически загружаемого общего объекта "
+"были доступны другим общим объектам (но не всем объектам) без показа этих "
+"символов всему приложению. Этого можно достичь используя отдельное "
+"пространство имён и флаг B<RTLD_GLOBAL>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<dlmopen>() function also can be used to provide better isolation than "
+"the B<RTLD_LOCAL> flag. In particular, shared objects loaded with "
+"B<RTLD_LOCAL> may be promoted to B<RTLD_GLOBAL> if they are dependencies of "
+"another shared object loaded with B<RTLD_GLOBAL>. Thus, B<RTLD_LOCAL> is "
+"insufficient to isolate a loaded shared object except in the (uncommon) "
+"case where one has explicit control over all shared object dependencies."
+msgstr ""
+"Функцию B<dlmopen>() также можно использовать для получения изолированности, "
+"большей чем с флагом B<RTLD_LOCAL>. В частности, общие объекты, загруженные "
+"с B<RTLD_LOCAL>, могут быть видимы при флаге B<RTLD_GLOBAL>, если они "
+"зависят от другого общего объекта, загруженного с флагом B<RTLD_GLOBAL>. То "
+"есть, B<RTLD_LOCAL> недостаточно изолирует загружаемый общий объект, за "
+"исключением случая (редкого), где он явно контролирует зависимости всех "
+"загружаемых общих объектов."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Possible uses of B<dlmopen>() are plugins where the author of the plugin-"
+"loading framework can't trust the plugin authors and does not wish any "
+"undefined symbols from the plugin framework to be resolved to plugin "
+"symbols. Another use is to load the same object more than once. Without "
+"the use of B<dlmopen>(), this would require the creation of distinct copies "
+"of the shared object file. Using B<dlmopen>(), this can be achieved by "
+"loading the same shared object file into different namespaces."
+msgstr ""
+"Возможный случай применения B<dlmopen>() — модули, где автор инфраструктуры "
+"модулей не может доверять авторам модулей и не хочет, чтобы все "
+"неопределённые символы инфраструктуры модулей определялись из модулей. "
+"Другой случай использования — загрузка одного объекта несколько раз. Без "
+"B<dlmopen>() это потребовало бы создание отдельных копий файлов общего "
+"объекта. С помощью B<dlmopen>() можно загрузить один файл общего объекта в "
+"разные пространства имён."
+
+#. DL_NNS
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The glibc implementation supports a maximum of 16 namespaces."
+msgstr "В реализации glibc поддерживается до 16 пространств имён."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Initialization and finalization functions"
+msgstr "Функции инициализации и завершения"
+
+#. info gcc "C Extensions" "Function attributes"
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Shared objects may export functions using the "
+"B<__attribute__((constructor))> and B<__attribute__((destructor))> function "
+"attributes. Constructor functions are executed before B<dlopen>() returns, "
+"and destructor functions are executed before B<dlclose>() returns. A "
+"shared object may export multiple constructors and destructors, and "
+"priorities can be associated with each function to determine the order in "
+"which they are executed. See the B<gcc> info pages (under \"Function "
+"attributes\") for further information."
+msgstr ""
+"Общие объекты могут экспортировать с помощью атрибутов функций "
+"B<__attribute__((constructor))> и B<__attribute__((destructor))>. Функции-"
+"конструкторы выполняются перед возвратом из B<dlopen>(), а функции-"
+"деструкторы выполняются перед возвратом из B<dlclose>(). Общий объект может "
+"экспортировать несколько конструкторов и деструкторов, с каждой функцией "
+"может быть связан приоритет, которым определяется порядок выполнения "
+"функций. Подробней смотрите info-страницу B<gcc> (раздел «Атрибуты функции»)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"An older method of (partially) achieving the same result is via the use of "
+"two special symbols recognized by the linker: B<_init> and B<_fini>. If a "
+"dynamically loaded shared object exports a routine named B<_init>(), then "
+"that code is executed after loading a shared object, before B<dlopen>() "
+"returns. If the shared object exports a routine named B<_fini>(), then that "
+"routine is called just before the object is unloaded. In this case, one "
+"must avoid linking against the system startup files, which contain default "
+"versions of these files; this can be done by using the B<gcc>(1) I<-"
+"nostartfiles> command-line option."
+msgstr ""
+"Старым способом достижения того же (частично) результата является "
+"использование двух специальных символов, распознаваемых компоновщиком: "
+"B<_init> и B<_fini>. Если динамически загружаемый общий объект экспортирует "
+"процедуру с именем B<_init>(), то её код выполняется после загрузки общего "
+"объекта, но возвращения из B<dlopen>(). Если общий объект экспортирует "
+"процедуру с именем B<_fini>(), то её код выполняется перед выгрузкой "
+"объекта. В этом случае не должна выполняться компоновка с системными файлами "
+"начального запуска, в которых содержатся версии по умолчанию этих файлов; "
+"для этого нужно вызывать B<gcc>(1) с параметром командной строки I<-"
+"nostartfiles>."
+
+#. Using these routines, or the gcc
+#. .B \-nostartfiles
+#. or
+#. .B \-nostdlib
+#. options, is not recommended.
+#. Their use may result in undesired behavior,
+#. since the constructor/destructor routines will not be executed
+#. (unless special measures are taken).
+#. .\" void _init(void) __attribute__((constructor));
+#. .\" void _fini(void) __attribute__((destructor));
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Use of B<_init> and B<_fini> is now deprecated in favor of the "
+"aforementioned constructors and destructors, which among other advantages, "
+"permit multiple initialization and finalization functions to be defined."
+msgstr ""
+"Использование B<_init> и B<_fini> теперь не рекомендуется, используйте "
+"упомянутые конструкторы и деструкторы, которые, среди прочих преимуществ, "
+"позволяют определять многократно вызываемые функции инициализации и "
+"завершения."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Since glibc 2.2.3, B<atexit>(3) can be used to register an exit handler "
+"that is automatically called when a shared object is unloaded."
+msgstr ""
+"Начиная с glibc 2.2.3, B<atexit>(3) может использоваться для регистрации "
+"обработчика завершения работы, который автоматически вызывается при выгрузке "
+"общего объекта."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "History"
+msgstr "История"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "These functions are part of the dlopen API, derived from SunOS."
+msgstr ""
+"Эти функции являются часть программного интерфейса dlopen, возникшего в "
+"SunOS."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr "ДЕФЕКТЫ"
+
+#. dlerror(): "invalid mode"
+#. https://sourceware.org/bugzilla/show_bug.cgi?id=18684
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"As at glibc 2.24, specifying the B<RTLD_GLOBAL> flag when calling "
+"B<dlmopen>() generates an error. Furthermore, specifying B<RTLD_GLOBAL> "
+"when calling B<dlopen>() results in a program crash (B<SIGSEGV>) if the "
+"call is made from any object loaded in a namespace other than the initial "
+"namespace."
+msgstr ""
+"В glibc 2.24 указание флага B<RTLD_GLOBAL> при вызове B<dlmopen>() приводит "
+"к ошибке. Кроме этого, указание B<RTLD_GLOBAL> при вызове B<dlopen>() "
+"приводит к падению программы (B<SIGSEGV>), если вызов делается из любого "
+"объекта, загруженного в пространство имён, отличное от начального "
+"пространства имён."
+
+#. 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 program below loads the (glibc) math library, looks up the address of "
+"the B<cos>(3) function, and prints the cosine of 2.0. The following is an "
+"example of building and running the program:"
+msgstr ""
+"Программа, представленная ниже, загружает библиотеку math (glibc), ищет "
+"адрес функции B<cos>(3) и печатает косинус 2.0. Пример сборки и выполнения "
+"программы:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$ B<cc dlopen_demo.c -ldl>\n"
+"$ B<./a.out>\n"
+"-0.416147\n"
+msgstr ""
+"$ B<cc dlopen_demo.c -ldl>\n"
+"$ B<./a.out>\n"
+"-0.416147\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 "Исходный код программы"
+
+#. http://pubs.opengroup.org/onlinepubs/009695399/functions/dlsym.html#tag_03_112_08
+#. http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html#tag_16_96_07
+#. http://austingroupbugs.net/view.php?id=74
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"#include E<lt>dlfcn.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"\\&\n"
+"#include E<lt>gnu/lib-names.hE<gt> /* Defines LIBM_SO (which will be a\n"
+" string such as \"libm.so.6\") */\n"
+"int\n"
+"main(void)\n"
+"{\n"
+" void *handle;\n"
+" double (*cosine)(double);\n"
+" char *error;\n"
+"\\&\n"
+" handle = dlopen(LIBM_SO, RTLD_LAZY);\n"
+" if (!handle) {\n"
+" fprintf(stderr, \"%s\\en\", dlerror());\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" dlerror(); /* Clear any existing error */\n"
+"\\&\n"
+" cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
+"\\&\n"
+" /* According to the ISO C standard, casting between function\n"
+" pointers and \\[aq]void *\\[aq], as done above, produces undefined results.\n"
+" POSIX.1-2001 and POSIX.1-2008 accepted this state of affairs and\n"
+" proposed the following workaround:\n"
+"\\&\n"
+" *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
+"\\&\n"
+" This (clumsy) cast conforms with the ISO C standard and will\n"
+" avoid any compiler warnings.\n"
+"\\&\n"
+" The 2013 Technical Corrigendum 1 to POSIX.1-2008 improved matters\n"
+" by requiring that conforming implementations support casting\n"
+" \\[aq]void *\\[aq] to a function pointer. Nevertheless, some compilers\n"
+" (e.g., gcc with the \\[aq]-pedantic\\[aq] option) may complain about the\n"
+" cast used in this program. */\n"
+"\\&\n"
+" error = dlerror();\n"
+" if (error != NULL) {\n"
+" fprintf(stderr, \"%s\\en\", error);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" printf(\"%f\\en\", (*cosine)(2.0));\n"
+" dlclose(handle);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. 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<ld>(1), B<ldd>(1), B<pldd>(1), B<dl_iterate_phdr>(3), B<dladdr>(3), "
+"B<dlerror>(3), B<dlinfo>(3), B<dlsym>(3), B<rtld-audit>(7), B<ld.so>(8), "
+"B<ldconfig>(8)"
+msgstr ""
+"B<ld>(1), B<ldd>(1), B<pldd>(1), B<dl_iterate_phdr>(3), B<dladdr>(3), "
+"B<dlerror>(3), B<dlinfo>(3), B<dlsym>(3), B<rtld-audit>(7), B<ld.so>(8), "
+"B<ldconfig>(8)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "gcc info pages, ld info pages"
+msgstr "Страницы в формате Info для gcc и ld"
+
+#. 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: SH
+#: debian-bookworm
+#, no-wrap
+msgid "VERSIONS"
+msgstr "ВЕРСИИ"
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"B<dlopen>() and B<dlclose>() are present in glibc 2.0 and later. "
+"B<dlmopen>() first appeared in glibc 2.3.4."
+msgstr ""
+"Функции B<dlopen>() и B<dlclose>() имеются в glibc 2.0 и новее. Функция "
+"B<dlmopen>() впервые появилась в glibc 2.3.4."
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"POSIX.1-2001 describes B<dlclose>() and B<dlopen>(). The B<dlmopen>() "
+"function is a GNU extension."
+msgstr ""
+"В POSIX.1-2001 описаны B<dlclose>() и B<dlopen>(). Функция B<dlmopen>() "
+"является расширением GNU."
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"The B<RTLD_NOLOAD>, B<RTLD_NODELETE>, and B<RTLD_DEEPBIND> flags are GNU "
+"extensions; the first two of these flags are also present on Solaris."
+msgstr ""
+"Флаги B<RTLD_NOLOAD>, B<RTLD_NODELETE> и B<RTLD_DEEPBIND> являются "
+"расширением GNU; первые два этих флага есть также в Solaris."
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| "#include E<lt>stdio.hE<gt>\n"
+#| "#include E<lt>stdlib.hE<gt>\n"
+#| "#include E<lt>unistd.hE<gt>\n"
+msgid ""
+"#include E<lt>dlfcn.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+msgstr ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| "#include E<lt>stdio.hE<gt>\n"
+#| "#include E<lt>stdlib.hE<gt>\n"
+#| "#include E<lt>dlfcn.hE<gt>\n"
+#| "#include E<lt>gnu/lib-names.hE<gt> /* Defines LIBM_SO (which will be a\n"
+#| " string such as \"libm.so.6\") */\n"
+#| "int\n"
+#| "main(void)\n"
+#| "{\n"
+#| " void *handle;\n"
+#| " double (*cosine)(double);\n"
+#| " char *error;\n"
+msgid ""
+"#include E<lt>gnu/lib-names.hE<gt> /* Defines LIBM_SO (which will be a\n"
+" string such as \"libm.so.6\") */\n"
+"int\n"
+"main(void)\n"
+"{\n"
+" void *handle;\n"
+" double (*cosine)(double);\n"
+" char *error;\n"
+msgstr ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>dlfcn.hE<gt>\n"
+"#include E<lt>gnu/lib-names.hE<gt> /* определение LIBM_SO (который\n"
+" является строкой вида libm.so.6») */\n"
+"int\n"
+"main(void)\n"
+"{\n"
+" void *handle;\n"
+" double (*cosine)(double);\n"
+" char *error;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" handle = dlopen(LIBM_SO, RTLD_LAZY);\n"
+" if (!handle) {\n"
+" fprintf(stderr, \"%s\\en\", dlerror());\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" handle = dlopen(LIBM_SO, RTLD_LAZY);\n"
+" if (!handle) {\n"
+" fprintf(stderr, \"%s\\en\", dlerror());\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " dlerror(); /* Clear any existing error */\n"
+msgstr " dlerror(); /* Очистка всех результатов ошибок */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
+msgstr " cosine = (double (*)(double)) dlsym(handle, \"cos\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " /* According to the ISO C standard, casting between function\n"
+#| " pointers and 'void *', as done above, produces undefined results.\n"
+#| " POSIX.1-2003 and POSIX.1-2008 accepted this state of affairs and\n"
+#| " proposed the following workaround:\n"
+msgid ""
+" /* According to the ISO C standard, casting between function\n"
+" pointers and \\[aq]void *\\[aq], as done above, produces undefined results.\n"
+" POSIX.1-2001 and POSIX.1-2008 accepted this state of affairs and\n"
+" proposed the following workaround:\n"
+msgstr ""
+" /* Согласно стандарту ISO C, преобразование между указателями на\n"
+" функции и «void *», использовавшемуся выше, приводит к\n"
+" неопределённым результатам. В POSIX.1-2003 и POSIX.1-2008\n"
+" принимается такое поведение и предлагается следующий\n"
+" обходной вариант:\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
+msgstr " *(void **) (&cosine) = dlsym(handle, \"cos\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" This (clumsy) cast conforms with the ISO C standard and will\n"
+" avoid any compiler warnings.\n"
+msgstr ""
+" Такое (топорное) преобразование удовлетворяет стандарту ISO C и\n"
+" предупреждений компилятора не будет.\n"
+
+#. http://pubs.opengroup.org/onlinepubs/009695399/functions/dlsym.html#tag_03_112_08
+#. http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html#tag_16_96_07
+#. http://austingroupbugs.net/view.php?id=74
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy, no-wrap
+#| msgid ""
+#| " The 2013 Technical Corrigendum to POSIX.1-2008 (a.k.a.\n"
+#| " POSIX.1-2013) improved matters by requiring that conforming\n"
+#| " implementations support casting 'void *' to a function pointer.\n"
+#| " Nevertheless, some compilers (e.g., gcc with the '-pedantic'\n"
+#| " option) may complain about the cast used in this program. */\n"
+msgid ""
+" The 2013 Technical Corrigendum 1 to POSIX.1-2008 improved matters\n"
+" by requiring that conforming implementations support casting\n"
+" \\[aq]void *\\[aq] to a function pointer. Nevertheless, some compilers\n"
+" (e.g., gcc with the \\[aq]-pedantic\\[aq] option) may complain about the\n"
+" cast used in this program. */\n"
+msgstr ""
+" Список опечаток 2013 к POSIX.1-2008 (т.н. POSIX.1-2013) улучшает\n"
+" состояние, требуя от реализаций поддержки преобразования «void *»\n"
+" в указатель на функцию. Тем не менее, некоторые компиляторы\n"
+" (например, gcc с параметром «-pedantic») могут выдавать\n"
+" предупреждение о преобразовании в этой программе. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" error = dlerror();\n"
+" if (error != NULL) {\n"
+" fprintf(stderr, \"%s\\en\", error);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" error = dlerror();\n"
+" if (error != NULL) {\n"
+" fprintf(stderr, \"%s\\en\", error);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" printf(\"%f\\en\", (*cosine)(2.0));\n"
+" dlclose(handle);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" printf(\"%f\\en\", (*cosine)(2.0));\n"
+" dlclose(handle);\n"
+" 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"