diff options
Diffstat (limited to 'po/ru/man3/dlopen.3.po')
-rw-r--r-- | po/ru/man3/dlopen.3.po | 1485 |
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" |