library.dynam {base} | R Documentation |
Load the specified file of compiled code if it has not been loaded already, or unloads it.
library.dynam(chname, package = NULL, lib.loc = NULL,
verbose = getOption("verbose"),
file.ext = .Platform$dynlib.ext, ...)
library.dynam.unload(chname, libpath,
verbose = getOption("verbose"),
file.ext = .Platform$dynlib.ext)
.dynLibs(new)
chname |
a character string naming a DLL (also known as a dynamic shared object or library) to load. |
package |
a character vector with the names of packages to search
through, or |
lib.loc |
a character vector describing the location of R
library trees to search through, or |
libpath |
the path to the loaded package whose DLL is to be unloaded. |
verbose |
a logical value indicating whether an announcement
is printed on the console before loading the DLL. The
default value is taken from the verbose entry in the system
|
file.ext |
the extension (including ‘.’ if used) to append to the file name to specify the library to be loaded. This defaults to the appropriate value for the operatingsystem. |
... |
additional arguments needed by some libraries that
are passed to the call to |
new |
a list of |
See dyn.load
for what sort of objects these functions handle.
library.dynam
is designed to be used inside a package rather
than at the command line, and should really only be used inside
.First.lib
or .onLoad
. The
system-specific extension for DLLs (e.g., ‘.so’ or ‘.sl’ on
Unix systems, ‘.so’ on Mac OS X, ‘.dll’ on Windows) should
not be added.
library.dynam.unload
is designed for use in
.Last.lib
or .onUnload
: it unloads the
DLL and updates the value of .dynLibs()
.dynLibs
is used for getting (with no argument) or setting the
DLLs which are currently loaded by packages (using library.dynam
).
If chname
is not specified, library.dynam
returns an
object of class "DLLInfoList"
corresponding to the DLLs loaded
by packages.
If chname
is specified, an object of class "DLLInfo"
that
identifies the DLL and can be used in future calls is returned
invisibly. For packages that have name spaces, a list of these objects
is stored in the name space's environment for use at run-time.
Note that the class DLLInfo
has an overloaded method for
$
which can be used to resolve native symbols within that
DLL.
library.dynam.unload
invisibly returns an object of class
"DLLInfo"
identifying the DLL successfully unloaded.
.dynLibs
returns an object of class "DLLInfoList"
corresponding corresponding to its current value.
Do not use dyn.unload
on a DLL loaded by
library.dynam
: use library.dynam.unload
to ensure
that .dynLibs
gets updated. Otherwise a subsequent call to
library.dynam
will be told the object is already loaded.
Note that whether or not it is possible to unload a DLL and then
reload a revised version of the same file is OS-dependent: see the
‘Value’ section of the help for dyn.unload
.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
getLoadedDLLs
for information on "DLLInfo"
and
"DLLInfoList"
objects.
.First.lib
, library
,
dyn.load
, .packages
,
.libPaths
SHLIB
for how to create suitable DLLs.
## Which DLLs were "dynamically loaded" by packages?
library.dynam()