xref: /dflybsd-src/lib/libc/gen/dlfcn.3 (revision bb5b9becd1923c502e9857d0ef340410aaeee99a)
1fcf53d9bSJohn Marino.\"	$NetBSD: dlfcn.3,v 1.30 2010/12/24 13:00:24 wiz Exp $
2fcf53d9bSJohn Marino.\"
3fcf53d9bSJohn Marino.\" Copyright (c) 1998 The NetBSD Foundation, Inc.
4fcf53d9bSJohn Marino.\" All rights reserved.
5fcf53d9bSJohn Marino.\"
6fcf53d9bSJohn Marino.\" This code is derived from software contributed to The NetBSD Foundation
7fcf53d9bSJohn Marino.\" by Paul Kranenburg.
8fcf53d9bSJohn Marino.\"
9fcf53d9bSJohn Marino.\" Redistribution and use in source and binary forms, with or without
10fcf53d9bSJohn Marino.\" modification, are permitted provided that the following conditions
11fcf53d9bSJohn Marino.\" are met:
12fcf53d9bSJohn Marino.\" 1. Redistributions of source code must retain the above copyright
13fcf53d9bSJohn Marino.\"    notice, this list of conditions and the following disclaimer.
14fcf53d9bSJohn Marino.\" 2. Redistributions in binary form must reproduce the above copyright
15fcf53d9bSJohn Marino.\"    notice, this list of conditions and the following disclaimer in the
16fcf53d9bSJohn Marino.\"    documentation and/or other materials provided with the distribution.
17fcf53d9bSJohn Marino.\"
18fcf53d9bSJohn Marino.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19fcf53d9bSJohn Marino.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20fcf53d9bSJohn Marino.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21fcf53d9bSJohn Marino.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22fcf53d9bSJohn Marino.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23fcf53d9bSJohn Marino.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24fcf53d9bSJohn Marino.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25fcf53d9bSJohn Marino.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26fcf53d9bSJohn Marino.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27fcf53d9bSJohn Marino.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28fcf53d9bSJohn Marino.\" POSSIBILITY OF SUCH DAMAGE.
29fcf53d9bSJohn Marino.\"
30*bb5b9becSSascha Wildner.Dd February 22, 2018
31fcf53d9bSJohn Marino.Dt DLFCN 3
32fcf53d9bSJohn Marino.Os
33fcf53d9bSJohn Marino.Sh NAME
34fcf53d9bSJohn Marino.Nm dlopen ,
35303c1887SJohn Marino.Nm fdlopen ,
36fcf53d9bSJohn Marino.Nm dlclose ,
37fcf53d9bSJohn Marino.Nm dlinfo ,
38fcf53d9bSJohn Marino.Nm dladdr ,
39fcf53d9bSJohn Marino.Nm dlsym ,
40fcf53d9bSJohn Marino.Nm dlfunc ,
41fcf53d9bSJohn Marino.Nm dlvsym ,
42fcf53d9bSJohn Marino.Nm dl_iterate_phdr ,
43fcf53d9bSJohn Marino.Nm dlerror
44fcf53d9bSJohn Marino.Nd programmatic interface to the dynamic linker
45fcf53d9bSJohn Marino.Sh LIBRARY
469f488f94SSascha WildnerThis function is not in a library.
479f488f94SSascha WildnerIt is included in every dynamically linked program automatically.
48fcf53d9bSJohn Marino.Sh SYNOPSIS
49fcf53d9bSJohn Marino.In dlfcn.h
50fcf53d9bSJohn Marino.Ft "void *"
51fcf53d9bSJohn Marino.Fn dlopen "const char *name" "int mode"
52303c1887SJohn Marino.Ft "void *"
53303c1887SJohn Marino.Fn fdlopen "int fd" "int mode"
54c19ddaabSSascha Wildner.Ft int
55fcf53d9bSJohn Marino.Fn dlclose "void *handle"
56c19ddaabSSascha Wildner.Ft int
57*bb5b9becSSascha Wildner.Fn dlinfo "void * restrict handle" "int request" "void * restrict p"
58c19ddaabSSascha Wildner.Ft int
59*bb5b9becSSascha Wildner.Fn dladdr "const void * restrict addr" "Dl_info * restrict info"
60fcf53d9bSJohn Marino.Ft "void *"
61*bb5b9becSSascha Wildner.Fn dlsym "void * restrict handle" "const char * restrict name"
62fcf53d9bSJohn Marino.Ft dlfunc_t
63*bb5b9becSSascha Wildner.Fn dlfunc "void * restrict handle" "const char * restrict name"
64fcf53d9bSJohn Marino.Ft "void *"
65*bb5b9becSSascha Wildner.Fn dlvsym "void * restrict handle" "const char * restrict name" "const char * restrict version"
66c19ddaabSSascha Wildner.Ft "char *"
67fcf53d9bSJohn Marino.Fn dlerror "void"
68fcf53d9bSJohn Marino.In link.h
69fcf53d9bSJohn Marino.Ft "int"
70fcf53d9bSJohn Marino.Fn dl_iterate_phdr "int (*callback)(struct dl_phdr_info *, size_t, void *)" "void * data"
71fcf53d9bSJohn Marino.Sh DESCRIPTION
72fcf53d9bSJohn MarinoThese functions provide an interface to the run-time linker
739f488f94SSascha Wildner.Xr ld-elf.so.2 1 .
74fcf53d9bSJohn MarinoThey allow new shared objects to be loaded into the process' address space
75fcf53d9bSJohn Marinounder program control.
76fcf53d9bSJohn Marino.Sh SEE ALSO
77fcf53d9bSJohn Marino.Xr ld 1 ,
78fcf53d9bSJohn Marino.Xr rtld 1 ,
79fcf53d9bSJohn Marino.Xr dladdr 3 ,
80fcf53d9bSJohn Marino.Xr dlclose 3 ,
81fcf53d9bSJohn Marino.Xr dlerror 3 ,
82c19ddaabSSascha Wildner.Xr dlfunc 3 ,
83c19ddaabSSascha Wildner.Xr dlinfo 3 ,
849f488f94SSascha Wildner.Xr dl_iterate_phdr 3 ,
85c19ddaabSSascha Wildner.Xr dlopen 3 ,
86c19ddaabSSascha Wildner.Xr dlsym 3 ,
87c19ddaabSSascha Wildner.Xr dlvsym 3 ,
88303c1887SJohn Marino.Xr fdlopen 3 ,
89c19ddaabSSascha Wildner.Xr link 5
90fcf53d9bSJohn Marino.Sh HISTORY
91fcf53d9bSJohn MarinoSome of the
92fcf53d9bSJohn Marino.Nm dl*
93fcf53d9bSJohn Marinofunctions first appeared in SunOS 4.
94