diff options
Diffstat (limited to 'templates/man3/dlopen.3.pot')
-rw-r--r-- | templates/man3/dlopen.3.pot | 1166 |
1 files changed, 1166 insertions, 0 deletions
diff --git a/templates/man3/dlopen.3.pot b/templates/man3/dlopen.3.pot new file mode 100644 index 00000000..67dce1e4 --- /dev/null +++ b/templates/man3/dlopen.3.pot @@ -0,0 +1,1166 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2024-03-01 16:55+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "dlopen" +msgstr "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-10-31" +msgstr "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"B<void *dlopen(const char *>I<filename>B<, int >I<flags>B<);>\n" +"B<int dlclose(void *>I<handle>B<);>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<#define _GNU_SOURCE>\n" +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<void *dlmopen(Lmid_t >I<lmid>B<, const char *>I<filename>B<, int >I<flags>B<);>\n" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "\\[bu]" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +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 "" + +#. 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 "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(ELF only) If the calling object contains a DT_RUNPATH tag, then the " +"directories listed in that tag are searched." +msgstr "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 +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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "dlmopen()" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "dlclose()" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. type: tbl table +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid ".nh\n" +msgstr "" + +#. 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 "" + +#. 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 "" + +#. 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 +#, no-wrap +msgid "B<dlopen>()" +msgstr "" + +#. type: TQ +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<dlclose>()" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "POSIX.1-2008." +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<dlmopen>()" +msgstr "" + +#. type: TQ +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<RTLD_NOLOAD>" +msgstr "" + +#. type: TQ +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<RTLD_NODELETE>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "GNU." +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<RTLD_DEEPBIND>" +msgstr "" + +#. 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 "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "glibc 2.3.4." +msgstr "" + +#. 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 "" + +#. 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 +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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +# +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. 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 "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-05" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"POSIX.1-2001 describes B<dlclose>() and B<dlopen>(). The B<dlmopen>() " +"function is a GNU extension." +msgstr "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"#include E<lt>dlfcn.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +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 "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " dlerror(); /* Clear any existing error */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " cosine = (double (*)(double)) dlsym(handle, \"cos\");\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " *(void **) (&cosine) = dlsym(handle, \"cos\");\n" +msgstr "" + +#. 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 "" + +#. 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 +#, no-wrap +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 "" + +#. 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 "" + +#. 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 "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-07-20" +msgstr "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "2023-03-30" +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "" |