U:RDoc::NormalClass[iI" Handle:ETI"Fiddle::Handle;TI" Object;To:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"CThe Fiddle::Handle is the manner to access the dynamic library;To:RDoc::Markup::BlankLineS:RDoc::Markup::Heading: leveli: textI" Example;T@S; ; i; I" Setup;T@o:RDoc::Markup::Verbatim;[ I""libc_so = "/lib64/libc.so.6" ;TI"=> "/lib64/libc.so.6" ;TI"+@handle = Fiddle::Handle.new(libc_so) ;TI"+=> # ;T: @format0S; ; i; I"Setup, with flags;T@o;;[ I""libc_so = "/lib64/libc.so.6" ;TI"=> "/lib64/libc.so.6" ;TI"T@handle = Fiddle::Handle.new(libc_so, Fiddle::RTLD_LAZY | Fiddle::RTLD_GLOBAL) ;TI"+=> # ;T;0o; ;[I""See RTLD_LAZY and RTLD_GLOBAL;T@S; ; i; I"Addresses to symbols;T@o;;[I"%strcpy_addr = @handle['strcpy'] ;TI"=> 140062278451968 ;T;0o; ;[I"or;T@o;;[I")strcpy_addr = @handle.sym('strcpy') ;TI"=> 140062278451968;T;0: @fileI"ext/fiddle/handle.c;T:0@omit_headings_from_table_of_contents_below0;0;0[[ U:RDoc::Constant[iI" NEXT;TI"Fiddle::Handle::NEXT;T00o;;[ o; ;[I" NEXT;T@o; ;[I",A predefined pseudo-handle of RTLD_NEXT;T@o; ;[I"KWhich will find the next occurrence of a function in the search order ;TI"after the current library.;T;@4;0@4@cRDoc::NormalClass0U;[iI" DEFAULT;TI"Fiddle::Handle::DEFAULT;T00o;;[ o; ;[I" DEFAULT;T@o; ;[I"/A predefined pseudo-handle of RTLD_DEFAULT;T@o; ;[I"JWhich will find the first occurrence of the desired symbol using the ;TI"!default library search order;T;@4;0@4@@G0U;[iI"RTLD_GLOBAL;TI" Fiddle::Handle::RTLD_GLOBAL;T00o;;[ o; ;[I"RTLD_GLOBAL;T@o; ;[I"rtld Fiddle::Handle flag.;T@o; ;[I"KThe symbols defined by this library will be made available for symbol ;TI"1resolution of subsequently loaded libraries.;T;@4;0@4@@G0U;[iI"RTLD_LAZY;TI"Fiddle::Handle::RTLD_LAZY;T00o;;[ o; ;[I"RTLD_LAZY;T@o; ;[I"rtld Fiddle::Handle flag.;T@o; ;[ I"MPerform lazy binding. Only resolve symbols as the code that references ;TI"Mthem is executed. If the symbol is never referenced, then it is never ;TI"Iresolved. (Lazy binding is only performed for function references; ;TI"Kreferences to variables are always immediately bound when the library ;TI"is loaded.);T;@4;0@4@@G0U;[iI" RTLD_NOW;TI"Fiddle::Handle::RTLD_NOW;T00o;;[ o; ;[I" RTLD_NOW;T@o; ;[I"rtld Fiddle::Handle flag.;T@o; ;[ I"KIf this value is specified or the environment variable LD_BIND_NOW is ;TI"Hset to a nonempty string, all undefined symbols in the library are ;TI"Mresolved before Fiddle.dlopen returns. If this cannot be done an error ;TI"is returned.;T;@4;0@4@@G0[[[I" class;T[[: public[[I"[];TI"ext/fiddle/handle.c;T[I"new;T@‘[I"sym;T@‘[:protected[[: private[[I" instance;T[[;[ [I"[];T@‘[I" close;T@‘[I"close_enabled?;T@‘[I"disable_close;T@‘[I"enable_close;T@‘[I"sym;T@‘[I" to_i;T@‘[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[I"ext/fiddle/closure.c;TI" Fiddle;TcRDoc::NormalModule