Software: Apache/2.0.54 (Fedora). PHP/5.0.4 uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 uid=48(apache) gid=48(apache) groups=48(apache) Safe-mode: OFF (not secure) /usr/share/gtk-doc/html/glib/ drwxr-xr-x |
Viewing file: Select action/file-type:
Synopsis#include <gmodule.h> GModule; gboolean g_module_supported (void); gchar* g_module_build_path (const gchar *directory, const gchar *module_name); GModule* g_module_open (const gchar *file_name, GModuleFlags flags); enum GModuleFlags; gboolean g_module_symbol (GModule *module, const gchar *symbol_name, gpointer *symbol); const gchar* g_module_name (GModule *module); void g_module_make_resident (GModule *module); gboolean g_module_close (GModule *module); const gchar* g_module_error (void); const gchar* (*GModuleCheckInit) (GModule *module); void (*GModuleUnload) (GModule *module); #define G_MODULE_SUFFIX #define G_MODULE_EXPORT #define G_MODULE_IMPORT Description
These functions provide a portable way to dynamically load object files
(commonly known as 'plug-ins').
The current implementation supports all systems that provide
an implementation of A program which wants to use these functions must be linked to the libraries output by the command pkg-config --libs gmodule-2.0.
To use them you must first determine whether dynamic loading
is supported on the platform by calling
If any of the above functions fail, the error status can be found with
The GModule implementation features reference counting for opened modules, and supports hook functions within a module which are called when the module is loaded and unloaded (see GModuleCheckInit and GModuleUnload).
If your module introduces static data to common subsystems in the running
program, e.g. through calling
Example 12. Calling a function defined in a GModule /* the function signature for 'say_hello' */ typedef void (* SayHelloFunc) (const char *message); gboolean just_say_hello (const char *filename, GError **error) { SayHelloFunc say_hello; GModule *module; module = g_module_open (filename, G_MODULE_BIND_LAZY); if (!module) { g_set_error (error, FOO_ERROR, FOO_ERROR_BLAH, "%s", g_module_error ()); return FALSE; } if (!g_module_symbol (module, "say_hello", (gpointer *)&say_hello)) { g_set_error (error, SAY_ERROR, SAY_ERROR_OPEN, "%s: %s", filename, g_module_error ()); if (!g_module_close (module)) g_warning ("%s: %s", filename, g_module_error ()); return FALSE; } /* call our function in the module */ say_hello ("Hello world!"); if (!g_module_close (module)) g_warning ("%s: %s", filename, g_module_error ()); return TRUE; }
DetailsGModuletypedef struct _GModule GModule; The GModule struct is an opaque data structure to represent a Dynamically-Loaded Module. It should only be accessed via the following functions. g_module_supported ()gboolean g_module_supported (void); Checks if modules are supported on the current platform.
g_module_build_path ()gchar* g_module_build_path (const gchar *directory, const gchar *module_name); A portable way to build the filename of a module. The platform-specific prefix and suffix are added to the filename, if needed, and the result is added to the directory, using the correct separator character.
The directory should specify the directory where the module can be found.
It can be
For example, calling
g_module_open ()GModule* g_module_open (const gchar *file_name, GModuleFlags flags); Opens a module. If the module has already been opened, its reference count is incremented.
First of all
enum GModuleFlagstypedef enum { G_MODULE_BIND_LAZY = 1 << 0, G_MODULE_BIND_LOCAL = 1 << 1, G_MODULE_BIND_MASK = 0x03 } GModuleFlags;
Flags passed to
g_module_symbol ()gboolean g_module_symbol (GModule *module, const gchar *symbol_name, gpointer *symbol); Gets a symbol pointer from a module.
g_module_name ()const gchar* g_module_name (GModule *module); Gets the filename from a GModule.
g_module_make_resident ()void g_module_make_resident (GModule *module);
Ensures that a module will never be unloaded.
Any future
g_module_close ()gboolean g_module_close (GModule *module); Closes a module.
g_module_error ()const gchar* g_module_error (void); Gets a string describing the last module error.
GModuleCheckInit ()const gchar* (*GModuleCheckInit) (GModule *module);
Specifies the type of the module initialization function.
If a module contains a function named
GModuleUnload ()void (*GModuleUnload) (GModule *module);
Specifies the type of the module function called when it is unloaded.
If a module contains a function named
G_MODULE_SUFFIX#define G_MODULE_SUFFIX "so" Expands to the proper shared library suffix for the current platform without the leading dot. For the most Unices and Linux this is "so", for some HP-UX versions this is "sl" and for Windows this is "dll".
|
:: Command execute :: | |
--[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0038 ]-- |