# Russian translation of manpages # This file is distributed under the same license as the manpages-l10n package. # Copyright © of this file: # Yuri Kozlov , 2012-2019. # Иван Павлов , 2017. msgid "" msgstr "" "Project-Id-Version: manpages-l10n\n" "POT-Creation-Date: 2024-06-01 05:47+0200\n" "PO-Revision-Date: 2019-08-29 09:55+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \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 debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "2 мая 2024 г." #. type: TH #: archlinux debian-unstable #, fuzzy, no-wrap #| msgid "Linux man-pages 6.7" msgid "Linux man-pages 6.8" msgstr "Linux man-pages 6.7" #. 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, 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 Edlfcn.hE>\n" msgstr "B<#include Edlfcn.hE>\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 "BIB<, int >IB<);>" msgid "" "BIB<, int >IB<);>\n" "BIB<);>\n" msgstr "BIB<, int >IB<);>" #. 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 "BIB<, const char *>IB<, int >IB<);>" msgid "BIB<, const char *>IB<, int >IB<);>\n" msgstr "BIB<, const char *>IB<, int >IB<);>" #. 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() loads the dynamic shared object (shared library) " "file named by the null-terminated string I and returns an opaque " "\"handle\" for the loaded object. This handle is employed with other " "functions in the dlopen API, such as B(3), B(3), " "B(3), and B()." msgstr "" "Функция B() загружает динамический общий объект (общую библиотеку) " "из файла, имя которого указано в строке I (завершается null) и " "возвращает скрытный описатель на загруженный объект. Данный описатель " "используется другими функциями программного интерфейса dlopen, такими как " "B(3), B(3), B(3) и B()." #. 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 is NULL, then the returned handle is for the main program. " "If I 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(8) for further details):" msgstr "" "Если I равно NULL, то возвращается описатель основной программы. " "Если I содержит косую черту («/»), то это воспринимается как имя с " "путём (относительным или абсолютным). Иначе динамический компоновщик ищет " "объект в следующих местах (подробности смотрите в B(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() 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 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, содержащая список каталогов через двоеточие, то " "производится поиск в этих каталогах (по соображениям безопасности эта " "переменная игнорируется для программ с установленными битами 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 (maintained by B(8)) is " "checked to see whether it contains an entry for I." msgstr "" "Производится проверка в кэширующем файле I (обслуживается " "B(8)) на предмет наличия записи для I." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The directories I and I are searched (in that order)." msgstr "" "Просматриваются каталоги I и I (именно в таком порядке)." #. 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 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, зависит от других общих объектов, то они " "также автоматически загружаются динамическим компоновщиком согласно этим же " "правилам (процесс может выполняться рекурсивно, если эти объекты, в свою " "очередь, зависят от других, и так далее)." #. 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:" msgstr "В I должно быть одно из двух следующих значений:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. 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 environment variable." msgstr "" "Выполнять позднее связывание (lazy binding). Выполняется поиск только тех " "символов, на которые есть ссылки из кода. Если на символ никогда не " "ссылаются, то он никогда не будет разрешён (позднее связывание выполняется " "только при ссылке на функции; ссылки на переменные всегда привязываются " "сразу при загрузке общего объекта). Начиная с libc 2.1.1, этот флаг " "заменяется на значение переменной окружения B." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. 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 is " "set to a nonempty string, all undefined symbols in the shared object are " "resolved before B() returns. If this cannot be done, an error is " "returned." msgstr "" "Если указано данное значение или переменная окружения B не " "пуста, то все неопределённые символы в общем объекте ищутся до возврата из " "B(). Если этого сделать не удаётся, то возвращается ошибка." #. 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:" msgstr "" "Также в В I может быть ноль или более значение, объединяемых по ИЛИ:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. 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" msgstr "B" #. 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, 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, используется по умолчанию, если не задано " "ни одного флага. Символы, определённые в этом общем объекте, не будут " "доступны при разрешении ссылок для общих объектов, загружаемых далее." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B (since glibc 2.2)" msgstr "B (начиная с 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(). Consequently, the " "object's static and global variables are not reinitialized if the object is " "reloaded with B() at a later time." msgstr "" "Не выгружать общий объект при B(). В результате статические и " "глобальные переменные объекта не инициализируются повторно, если объект " "загружается снова по B()." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B (since glibc 2.2)" msgstr "B (начиная с 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() 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 can be reopened with " "B." msgstr "" "Не загружать общий объект. Это можно использовать для тестирования того, что " "объект уже загружен (B() возвращает NULL, если нет, или описатель " "объекта в противном случае). Данный флаг также можно использовать для " "изменения флагов уже загруженного объекта. Например, общий объект, который " "был загружен ранее с B, можно открыть повторно с B." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B (since glibc 2.3.4)" msgstr "B (начиная с 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 is NULL, then the returned handle is for the main " #| "program. When given to B(), 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() with " #| "the flag B." msgid "" "If I is NULL, then the returned handle is for the main program. " "When given to B(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() with the flag B." msgstr "" "Если значение I равно NULL, то возвращается описатель для главной " "программы. При передаче в B(), этот описатель вызывает поиск символа " "в главной программе, затем во все общих объектах, загруженных при запуске " "программы, и затем во всех общих объектах, загруженных B() с флагом " "B." #. 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() using the B flag; and " "definitions in the shared object itself (and any dependencies that were " "loaded for that object)." msgstr "" "Поиск символьных ссылок общего объекта производится следующим образом (в " "таком порядке): символы в карте ссылок объектов, загруженных для главной " "программы и её зависимостей; символы в общих объектах (и их зависимостях), " "которые были открыты ранее с помощью B() и флага B; " "определения в самом общем объекте (и любых зависимостях, которые были " "загружены для этого объекта)." #. 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(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(1) noted a dependency on a symbol in another object during " "static linking." msgstr "" "Все глобальные символы в исполняемом файле, которые были помещены в его " "таблицу динамических символов посредством B(1), также могут быть " "использованы при поиске ссылок динамически загружаемого общего объекта. " "Символы могут попасть в таблицу динамических символов из-за того, что " "исполняемый файл был скомпонован с флагом «-rdynamic» (или его синонимом «--" "export-dynamic»), который помещает что все глобальные символы исполняемого " "файла в таблицу динамических символов, или из-за того, что B(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(), 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() has been called on it as many times as B() 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() повторно, то " "возвращается тот же описатель на объект. Динамический компоновщик ведёт " "счётчик ссылок для описателей объектов, поэтому динамически загруженный " "общий объект не высвобождается B() до тех пор, пока он не будет " "вызвана столько же раз сколько и B(). Процедуры инициализации " "(смотрите ниже) вызываются только когда объект действительно загружается в " "память (т. е., когда счётчик ссылок увеличивается на 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() call that loads the same shared object with " "B may force symbol resolution for a shared object earlier loaded " "with B. Similarly, an object that was previously opened with " "B can be promoted to B in a subsequent B()." msgstr "" "Последующий вызов B(), загружающий тот же общий объект с флагом " "B, может привести к поиску символов для общего объекта ранее " "загруженного с флагом B. Схожим образом объект, открытый ранее с " "флагом B, в последующем вызове B() может быть " "преобразован в B." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "If B() fails for any reason, it returns NULL." msgstr "" "Если по какой-то причине B() завершается неудачно, то возвращается " "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()\\(emthe I " #| "and I 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()\\[em]the I and " "I arguments, as well as the return value, are the same, except for " "the differences noted below." msgstr "" "Данная функция делает то же самое что и B(), аргументы I и " "I, а также возвращаемое значение — такие же, отличия описаны далее." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function differs from B() primarily in that it " "accepts an additional argument, I, that specifies the link-map list " "(also referred to as a I) in which the shared object should be " "loaded. (By comparison, B() adds the dynamically loaded shared " "object to the same namespace as the shared object from which the " "B() call is made.) The I type is an opaque handle that " "refers to a namespace." msgstr "" "Функция B() отличается от B(), главным образом в том, что " "имеет дополнительный аргумент I, в котором задаётся список карт связей " "(link-map list, ещё называемый I<пространством имён>), в который должен быть " "загружен общий объект (B() добавляет динамически загружаемый общий " "объект в тоже пространство имён, в котором находится общий объект, из " "которого был вызван B()). Тип I является скрытым описателем, " "который ссылается на пространство имён." #. 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 argument is either the ID of an existing namespace (which can be " "obtained using the B(3) B request) or one of the " "following special values:" msgstr "" "В аргументе I может быть указан ID существующего пространства имён " "(который может быть получен с помощью B(3) с запросом " "B) или одно из следующих специальных значений:" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. 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" msgstr "B" #. 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 is NULL, then the only permitted value for I is " "B." msgstr "" "Если I равно NULL, то для I разрешено только значение " "B." #. 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() decrements the reference count on the dynamically " "loaded shared object referred to by I." msgstr "" "Функция B() уменьшает счётчик ссылок на динамически загружаемый " "общий объект, на который ссылается I." #. 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 flag and one of its symbols satisfied a relocation in another " "object.)" msgstr "" "Если счётчик ссылок достигает нуля и символы этого объекта не нужны другим " "объектам, то объект выгружается после первого вызова любого деструктора, " "определённого в объекте (символы в этом объекте могут требоваться в другом " "объекте из-за того, что этот объект был открыт с флагом B и " "один из его символов совпадает с расположением из другого объекта)." #. 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() was " "invoked on the object referred to by I are recursively closed in the " "same manner." msgstr "" "Все общие объекты, которые были автоматически загружены при вызове " "B() для объекта, на который ссылается I, рекурсивно " "закрываются таким же способом." #. 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() does not guarantee that the symbols " "associated with I are removed from the caller's address space. In " "addition to references resulting from explicit B() 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() не гарантирует, что символы, связанные с " "I удалятся из адресного пространства вызывающего. В дополнении к " "ссылкам, полученным из-за явного вызова B(), общий объект может быть " "загружен неявно (и увеличится счётчик ссылок), так как от него зависят " "другие общие объекты. Общий объект будет удалён из адресного пространства " "только когда будут удалены все ссылки на него." #. 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() and B() 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() и B() для загруженного объекта " "возвращают описатель не равный 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() returns 0; on error, it returns a nonzero value." msgstr "" "При успешном выполнении B() возвращает 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(3)." msgstr "" "Ошибки, возникшие в этих функциях, можно определить с помощью B(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(7)." msgstr "Описание терминов данного раздела смотрите в B(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(),\n" "B(),\n" "B()" msgstr "" "B(),\n" "B(),\n" "B()" #. 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(2)" msgid "B()" msgstr "B(2)" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "B(2)" msgid "B()" msgstr "B(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()" msgstr "dlmopen()" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "B" msgid "B" msgstr "B" #. type: TQ #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "B" msgid "B" msgstr "B" #. 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" msgid "B" msgstr "B" #. 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() 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 flag is not sufficient for this " #| "purpose, since it prevents a shared object's symbols from being available " #| "to I 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 flag." msgid "" "The B() 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 flag is not sufficient for this purpose, since it " "prevents a shared object's symbols from being available to I 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 flag." msgstr "" "Функция B() позволяет достичь изоляции загружаемых объектов — " "загружает общий объект в новое пространство имён без показа символов всему " "приложению, а только новому объекту. Заметим, что использование флага " "B недостаточно для этой цели, так как он делает недоступным " "символы общего объекта I<любому> другому общему объекту. В некоторых случаях " "может понадобиться, чтобы символы динамически загружаемого общего объекта " "были доступны другим общим объектам (но не всем объектам) без показа этих " "символов всему приложению. Этого можно достичь используя отдельное " "пространство имён и флаг B." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() function also can be used to provide better isolation than " "the B flag. In particular, shared objects loaded with " "B may be promoted to B if they are dependencies of " "another shared object loaded with B. Thus, B 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() также можно использовать для получения изолированности, " "большей чем с флагом B. В частности, общие объекты, загруженные " "с B, могут быть видимы при флаге B, если они " "зависят от другого общего объекта, загруженного с флагом B. То " "есть, B недостаточно изолирует загружаемый общий объект, за " "исключением случая (редкого), где он явно контролирует зависимости всех " "загружаемых общих объектов." #. 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() 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(), this would require the creation of distinct copies " "of the shared object file. Using B(), this can be achieved by " "loading the same shared object file into different namespaces." msgstr "" "Возможный случай применения B() — модули, где автор инфраструктуры " "модулей не может доверять авторам модулей и не хочет, чтобы все " "неопределённые символы инфраструктуры модулей определялись из модулей. " "Другой случай использования — загрузка одного объекта несколько раз. Без " "B() это потребовало бы создание отдельных копий файлов общего " "объекта. С помощью B() можно загрузить один файл общего объекта в " "разные пространства имён." #. 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() returns, " "and destructor functions are executed before B() 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 info pages (under \"Function " "attributes\") for further information." msgstr "" "Общие объекты могут экспортировать с помощью атрибутов функций " "B<__attribute__((constructor))> и B<__attribute__((destructor))>. Функции-" "конструкторы выполняются перед возвратом из B(), а функции-" "деструкторы выполняются перед возвратом из B(). Общий объект может " "экспортировать несколько конструкторов и деструкторов, с каждой функцией " "может быть связан приоритет, которым определяется порядок выполнения " "функций. Подробней смотрите info-страницу B (раздел «Атрибуты функции»)." #. 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() " "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(1) I<-" "nostartfiles> command-line option." msgstr "" "Старым способом достижения того же (частично) результата является " "использование двух специальных символов, распознаваемых компоновщиком: " "B<_init> и B<_fini>. Если динамически загружаемый общий объект экспортирует " "процедуру с именем B<_init>(), то её код выполняется после загрузки общего " "объекта, но возвращения из B(). Если общий объект экспортирует " "процедуру с именем B<_fini>(), то её код выполняется перед выгрузкой " "объекта. В этом случае не должна выполняться компоновка с системными файлами " "начального запуска, в которых содержатся версии по умолчанию этих файлов; " "для этого нужно вызывать B(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(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(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 flag when calling " "B() generates an error. Furthermore, specifying B " "when calling B() results in a program crash (B) if the " "call is made from any object loaded in a namespace other than the initial " "namespace." msgstr "" "В glibc 2.24 указание флага B при вызове B() приводит " "к ошибке. Кроме этого, указание B при вызове B() " "приводит к падению программы (B), если вызов делается из любого " "объекта, загруженного в пространство имён, отличное от начального " "пространства имён." #. 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(3) function, and prints the cosine of 2.0. The following is an " "example of building and running the program:" msgstr "" "Программа, представленная ниже, загружает библиотеку math (glibc), ищет " "адрес функции B(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\n" "$ B<./a.out>\n" "-0.416147\n" msgstr "" "$ B\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 Edlfcn.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "\\&\n" "#include Egnu/lib-names.hE /* 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(1), B(1), B(1), B(3), B(3), " "B(3), B(3), B(3), B(7), B(8), " "B(8)" msgstr "" "B(1), B(1), B(1), B(3), B(3), " "B(3), B(3), B(3), B(7), B(8), " "B(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() and B() are present in glibc 2.0 and later. " "B() first appeared in glibc 2.3.4." msgstr "" "Функции B() и B() имеются в glibc 2.0 и новее. Функция " "B() впервые появилась в glibc 2.3.4." #. type: Plain text #: debian-bookworm msgid "" "POSIX.1-2001 describes B() and B(). The B() " "function is a GNU extension." msgstr "" "В POSIX.1-2001 описаны B() и B(). Функция B() " "является расширением GNU." #. type: Plain text #: debian-bookworm msgid "" "The B, B, and B flags are GNU " "extensions; the first two of these flags are also present on Solaris." msgstr "" "Флаги B, B и B являются " "расширением GNU; первые два этих флага есть также в Solaris." #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| "#include Estdio.hE\n" #| "#include Estdlib.hE\n" #| "#include Eunistd.hE\n" msgid "" "#include Edlfcn.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" msgstr "" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| "#include Estdio.hE\n" #| "#include Estdlib.hE\n" #| "#include Edlfcn.hE\n" #| "#include Egnu/lib-names.hE /* 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 Egnu/lib-names.hE /* 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 Estdio.hE\n" "#include Estdlib.hE\n" "#include Edlfcn.hE\n" "#include Egnu/lib-names.hE /* определение 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 #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "31 октября 2023 г." #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "Linux man-pages 6.06" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "Linux man-pages 6.7" #. 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" #. type: TH #: opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "Linux man-pages 6.7" msgid "Linux man-pages (unreleased)" msgstr "Linux man-pages 6.7"