Next: Modules for libltdl, Up: Using libltdl [Contents][Index]
libltdl API¤Ï¡¤¶¯ÎϤÊSolaris¤ÈLinux¤Îdlopen¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë»÷¤Æ¤¤¤Æ¡¤ ¤½¤ì¤Ï¡¤Èó¾ï¤Ë´Êñ¤Ç¤¹¤¬¶¯ÎϤǤ¹¡¥
¥×¥í¥°¥é¥à¤Çlibltdl¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¡¤¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëltdl.h¤ò¥¤¥ó ¥¯¥ë¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
#include <ltdl.h>
libltdl¤ÎÁ°²ó¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¤POSIX̾Á°¶õ´Ö¤Î´·½¬¤Ë°ãÈ¿¤·¤Æ¤¤¤¿¥· ¥ó¥Ü¥ë¤ò¤¤¤¯¤Ä¤«»ÈÍѤ·¤Æ¤¤¤Þ¤·¤¿¡¥¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Î»ÈÍѤϡ¤¸½ºß¤Ç¤ÏÈó Æñ¤µ¤ì¤ë¤Î¤Ç¡¤¤³¤³¤Çµ½Ò¤µ¤ì¤ë¤è¤¦¤ËÃÖ´¹¤µ¤ì¤Þ¤·¤¿¡¥¸Å¤¤ÈóÆñ¤µ¤ì¤½¤¦¤Ê ¥·¥ó¥Ü¥ë̾¤Ë°Í¸¤·¤¿¥³¡¼¥É¤¬¤¢¤ë¾ì¹ç¡¤ltdl.h¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë Á°¤Ë‘LT_NON_POSIX_NAMESPACE’¤òÄêµÁ¤¹¤ë¤È¡¤ÊÑ´¹¤µ¤ì¤¿¥Þ¥¯¥í¤¬Äó¶¡ ¤µ¤ì¤Þ¤¹¡¥»ÈÍѤ¹¤ë¥·¥ó¥Ü¥ë¤ÎÁȤ¬²¿¤Ç¤¢¤Ã¤Æ¤â¡¤¿·¤·¤¤API¤ÏÁ°²ó¤Î¤â¤Î¤È ¥Ð¥¤¥Ê¥ê¸ß´¹¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¤¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Îlibltdl¤ò»ÈÍѤ¹¤ë¤¿¤á¡¤¥¢¥× ¥ê¥±¡¼¥·¥ç¥ó¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡¥
libltdl¤¬¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ê¤¤¡¤¤¹¤Ê¤ï¤Á¡¤¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥¢¥×¥ê¥±¡¼¥·¥ç
¥ó¤Ï¡¤libtool¤ËÂФ·¥ß¥å¡¼¥Æ¥Ã¥¯¥¹¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯
¤À¤µ¤¤¡¥¤½¤ì¤Ï¡¤GNU/Linux¤Îglibc 2.0¤Î‘RTLD_LAZY’¤òÍѤ¤¤¿
dlopen
¤¬(¥Ç¥Õ¥©¥ë¥È¤Çlibtool¤ò»ÈÍѤ·¤Þ¤¹)¡¤¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤Ï¤Ê
¤¤¤³¤È¤¬Êó¹ð¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¤¤³¤ÎÌäÂê¤Ï¡¤glibc 2.1¤Ç¤ª¤½¤é¤¯½¤Àµ¤µ¤ì¤ë
¤Ç¤·¤ç¡¥°ìÊý¡¤‘RTLD_NOW’¤Ï¡¤FreeBSD¾å¤Î¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥¢¥×¥ê¥±¡¼¥·¥ç
¥ó¤ÇÌäÂ꤬À¸¤¸¤¿¤ÈÊó¹ð¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥¤³¤ì¤é¤ÎÌäÂê¤Ë´Ø¤¹¤ëºî¶È¤Ï¡¤ÆÉ¼Ô¤Î
±é½¬¤È¤·¤Æ»Ä¤Ã¤Æ¤¤¤Þ¤¹¡¥¹×¸¥¤Ï¡¤¤¤Ã¤È´¿·Þ¤µ¤ì¤Þ¤¹¡¥
°Ê²¼¤Î·¿¤Ïltdl.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
lt_ptr
¤Ï¡¤ÈÆÍѥݥ¤¥ó¥¿¤Ç¤¹¡¥
lt_dlhandle
¤Ï¥â¥¸¥å¡¼¥ë"¥Ï¥ó¥É¥ë"¤Ç¤¹¡¥¤¹¤Ù¤Æ¤Îlt_dlopen¤µ¤ì¤ë
¥â¥¸¥å¡¼¥ë¤Ï¤½¤ì¤Ë´ØÏ¢ÉÕ¤±¤µ¤ì¤¿¥Ï¥ó¥É¥ë¤¬¤¢¤ê¤Þ¤¹¡¥
lt_dlsymlist
¤Ïdlpreopen¤µ¤ì¤ë¥â¥¸¥å¡¼¥ë¤Î¥·¥ó¥Ü¥ë¥ê¥¹¥È¤Ç¤¹¡¥¤³
¤Î¹½Â¤ÂΤϡ¤see Dlpreopening¤Çµ½Ò¤µ¤ì¤Þ¤¹¡¥
libltdl¤Ï°Ê²¼¤Î´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡¥
libltdl¤ò½é´ü²½¤·¤Þ¤¹¡¥¤³¤Î´Ø¿ô¤Ï¡¤libltdl»ÈÍѤ¹¤ëÁ°¤Ë¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢ ¤ê¡¤Ê£¿ô²ó¸Æ¤Ó½Ð¤¹¤³¤È¤¬²Äǽ¤Ç¤¹¡¥À®¸ù¤·¤¿¤é0¡¤¤½¤ì°Ê³°¤Ç¤Ï¥¨¥é¡¼¤ÎÈÖ ¹æ¤òÊÖ¤·¤Þ¤¹¡¥
libltdl¤ò½ªÎ»¤·¡¤¤¹¤Ù¤Æ¤Î¥â¥¸¥å¡¼¥ë¤òÊĤ¸¤Þ¤¹¡¥¤³¤Î´Ø¿ô¤Ï¡¤
lt_dlinit
¤¬Àµ¾ï¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿²ó¿ô¤ÈƱ¤¸¤À¤±¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤¡¤
libltdl¤ò½ªÎ»¤¹¤ë¤À¤±¤Ç¤¹¡¥À®¸ù¤·¤¿¤é0¡¤¤½¤ì°Ê³°¤Ç¤Ï¥¨¥é¡¼¤ÎÈÖ¹æ¤òÊÖ¤·
¤Þ¤¹¡¥
¥Õ¥¡¥¤¥ë̾filename¤òÍѤ¤¤Æ¥â¥¸¥å¡¼¥ë¤ò³«¤¡¤¤½¤Î¥Ï¥ó¥É¥ë¤òÊÖ¤·¤Þ
¤¹¡¥lt_dlopen
¤Ï¡¤libtool¥À¥¤¥Ê¥ß¥Ã¥¯¥â¥¸¥å¡¼¥ë¡¤¥×¥ê¥í¡¼¥É¤µ¤ì
¤¿¥¹¥¿¥Æ¥£¥Ã¥¯¥â¥¸¥å¡¼¥ë¡¤¥×¥í¥°¥é¥à¼«¿È¡¤¤½¤·¤Æ¥Í¥¤¥Æ¥£¥Ö¤Ê¥À¥¤¥Ê¥ß¥Ã
¥¯¥é¥¤¥Ö¥é¥ê¤ò³«¤¯¤³¤È¤¬²Äǽ¤Ç¤¹¡¥
¥â¥¸¥å¡¼¥ëÆâ¤Î̤²ò·è¤Î¥·¥ó¥Ü¥ë¤Ï¡¤¤½¤ì¤¬°Í¸¤¹¤ë(¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤)
¥é¥¤¥Ö¥é¥ê¤È¡¤Á°¤â¤Ã¤Ædlopen¤µ¤ì¤¿¥â¥¸¥å¡¼¥ë¤òÍѤ¤¤Æ²ò·è¤µ¤ì¤Þ¤¹¡¥¤³¤Î
¥â¥¸¥å¡¼¥ë¤ò»ÈÍѤ·¤Æ¤¤¤ë¼Â¹Ô·Á¼°¤¬-export-dynamic
¥Õ¥é¥°¤Ç¥ê¥ó¥¯
¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¤¼Â¹Ô·Á¼°¤ÎÂç°èŪ¤Ê¥·¥ó¥Ü¥ë¤â¥â¥¸¥å¡¼¥ëÆâ¤Î»²¾È¤Î²ò·è¤Ë
»ÈÍѤµ¤ì¤Þ¤¹¡¥
filename¤¬NULL
¤Ç¥×¥í¥°¥é¥à¤¬-export-dynamic
¤ä
-dlopen self
¤òÍѤ¤¤Æ¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¤lt_dlopen
¤Ï¥×
¥í¥°¥é¥à¼«¿È¤Î¥Ï¥ó¥É¥ë¤òÊÖ¤·¡¤¤½¤ì¤Ï¤½¤Î¥·¥ó¥Ü¥ë¤Î¥¢¥¯¥»¥¹¤Ë»ÈÍѲÄǽ¤Ç
¤¹¡¥
libltdl¤¬¥é¥¤¥Ö¥é¥ê¤ò¸«¤Ä¤±¤é¤ì¤º¡¤¥Õ¥¡¥¤¥ë̾filename¤¬¥Ç¥£¥ì¥¯ ¥È¥ê¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ý¤¿¤Ê¤¤¾ì¹ç¡¤¤½¤ì¤Ï¡¤°Ê²¼¤Î¸¡º÷¥Ñ¥¹¤ò(°Ê²¼¤Î½çÈÖ ¤Ç)¡¤¤µ¤é¤Ë¥â¥¸¥å¡¼¥ë¤ò¸¡º÷¤·¤Þ¤¹¡¥
lt_dlsetsearchpath
¡¤
lt_dladdsearchdir
¡¤¤½¤·¤Ælt_dlinsertsearchdir
¤òÍѤ¤¤¿¥×
¥í¥°¥é¥à¤ÇÊѹ¹²Äǽ¤Ç¤¹¡¥
¤½¤ì¤¾¤ì¤Î¸¡º÷¥Ñ¥¹¤Ï¡¤Î㤨¤Ð"/usr/lib/mypkg:/lib/foo"
¤Î¤è¤¦¤Ë¡¤
¥³¥í¥ó¤ÇʬΥ¤µ¤ì¤¿ÀäÂÐŪ¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
Ʊ¤¸¥â¥¸¥å¡¼¥ë¤¬Ê£¿ô²ó¥í¡¼¥É¤µ¤ì¤¿¾ì¹ç¡¤Æ±¤¸¥Ï¥ó¥É¥ë¤¬ÊÖ¤µ¤ì¤Þ¤¹¡¥¤¢¤é
¤æ¤ë¸¶°ø¤Çlt_dlopen
¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¤NULL
¤¬ÊÖ¤µ¤ì¤Þ¤¹¡¥
¥Õ¥¡¥¤¥ë̾¤Ë°Û¤Ê¤ë¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤òÄɲäò»î¤ß¤ë°Ê³°¤Ï¡¤
lt_dlopen
¤ÈƱ¤¸¤Ç¤¹¡¥¥Õ¥¡¥¤¥ë̾filename¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬¸«
¤Ä¤«¤é¤Ê¤¤¾ì¹ç¡¤libltdl¤Ï¡¤°Ê²¼¤Î³ÈÄ¥»Ò¤ÎÄɲäò»î¤ß¤Þ¤¹¡¥
¤³¤Îõº÷¼êË¡¤Ï¡¤ËÜÍè¤Î¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤Î̿̾µ¬Â§¤òÃΤé¤Ê¤¤¥×¥í¥°
¥é¥à¤¬¡¤¤½¤Î¤è¤¦¤Ê¥é¥¤¥Ö¥é¥ê¤ò¡¤libtool¥â¥¸¥å¡¼¥ë¤ÈƱÍͤˡ¤Æ©²áŪ¤Ë
dlopen
¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¤¿¤á¤ËÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡¥
¥â¥¸¥å¡¼¥ëhandle¤Î»²¾È¥«¥¦¥ó¥È¤ò¸º¤é¤·¤Þ¤¹¡¥¥¼¥í¤Ë¤Ê¤Ã¤¿¤ê¡¤¤³¤Î ¥â¥¸¥å¡¼¥ë¤Ë°Í¸¤¹¤ë¾¤Î¥â¥¸¥å¡¼¥ë¤¬¤Ê¤¤¾ì¹ç¡¤¥â¥¸¥å¡¼¥ë¤Ï¥¢¥ó¥í¡¼¥É¤µ ¤ì¤Þ¤¹¡¥À®¸ù»þ¤Ë¤Ï0¤òÊÖ¤·¤Þ¤¹¡¥
¥â¥¸¥å¡¼¥ëhandleÆâ¤Î¥¢¥É¥ì¥¹¤òÊÖ¤·¡¤¤½¤³¤Ç¤Ï¡¤¥Ì¥ë¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸
»úÎóname¤ÇÍ¿¤¨¤é¤ì¤ë¥·¥ó¥Ü¥ë¤¬¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥¥·¥ó¥Ü¥ë¤¬¸«¤Ä
¤«¤é¤Ê¤¤¾ì¹ç¤ÏNULL
¤òÊÖ¤·¤Þ¤¹¡¥
libltdl¤Î¤¢¤é¤æ¤ë´Ø¿ô¤«¤éȯÀ¸¤·¤¿ºÇ¤â¿·¤·¤¤¥¨¥é¡¼¤òµ½Ò¤¹¤ë¡¤²ÄÆÉÀ¤Î
¹â¤¤Ê¸»úÎó¤òÊÖ¤·¤Þ¤¹¡¥½é´ü²½¤«¤é¤Þ¤¿¤ÏºÇ¸å¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Æ¤«¤é¥¨¥é¡¼¤¬È¯
À¸¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¤NULL
¤òÊÖ¤·¤Þ¤¹¡¥
¥×¥ê¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ëpreloaded¤Î¥ê¥¹¥È¤òÅÐÏ¿¤·¤Þ¤¹¡¥
preloaded¤¬NULL
¤Î¾ì¹ç¡¤lt_dlpreload_default
¤ÇÀßÄê
¤µ¤ì¤Æ¤¤¤ë¥ê¥¹¥È°Ê³°¤Î¡¤¤³¤ì¤Þ¤ÇÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ë¥ê¥¹¥È¤¬
¸¡½Ð¤µ¤ì¤Þ¤¹¡¥À®¸ù»þ¤Ë¤Ï0¤òÊÖ¤·¤Þ¤¹¡¥
¥×¥ê¥í¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¥ê¥¹¥È¤Î¥Ç¥Õ¥©¥ë¥È¤òpreloaded¤ËÀß
Äꤷ¡¤¤½¤ì¤Ïlt_dlpreload
¤Ç¸¡½Ð¤µ¤ì¤Þ¤»¤ó¡¥¤³¤Î´Ø¿ô¤Ï¡¤
lt_dlinit
¤ò»ÈÍѤ·¤Æ½é´ü²½¤µ¤ì¤ë¤¿¤á¤Ëlibltdl¤òÍ׵ᤷ¤Ê¤¤
¤³¤È¤È¡¤¥Ç¥Õ¥©¥ë¥È¤Ç¥×¥ê¥í¡¼¥É¤µ¤ì¤ë¥â¥¸¥å¡¼¥ë¤òÅÐÏ¿¤¹¤ë¤¿¤á¤Ë¥×¥í¥°¥é
¥à¤Ç»ÈÍѤǤ¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡¥¤³¤Î´Ø¿ô¤òľÀܸƤӽФ¹Âå¤ï¤ê¤Ë¡¤
¤Û¤È¤ó¤É¤Î¥×¥í¥°¥é¥à¤Ï¥Þ¥¯¥íLTDL_SET_PRELOADED_SYMBOLS
¤ò»ÈÍѤ·
¤Þ¤¹¡¥
À®¸ù»þ¤Ë¤Ï0¤òÊÖ¤·¤Þ¤¹¡¥
¥×¥ê¥í¡¼¥É¤µ¤ì¤ë¥·¥ó¥Ü¥ë¤Î¥Ç¥Õ¥©¥ë¥È¥ê¥¹¥È¤òÀßÄꤷ¤Þ¤¹¡¥¥×¥ê¥í¡¼¥É¤µ¤ì ¤ëlibltdl¤Î¥â¥¸¥å¡¼¥ë¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë¡¤¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤¿Êý¤¬Îɤ¤ ¤Ç¤·¤ç¤¦¡¥
#include <ltdl.h> int main() { /* ... */ LTDL_SET_PRELOADED_SYMBOLS(); /* ... */ }
¸¡º÷¥Ç¥£¥ì¥¯¥È¥êsearch_dir¤ò¸½ºß¤Î¥æ¡¼¥¶ÄêµÁ¤Î¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹ ¤Ë¸åÃÖ¤·¤Þ¤¹¡¥À®¸ù»þ¤Ë¤Ï0¤òÊÖ¤·¤Þ¤¹¡¥
¸¡º÷¥Ç¥£¥ì¥¯¥È¥êsearch_dir¤ò¥æ¡¼¥¶ÄêµÁ¤Î¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤ò¡¤¥¢
¥É¥ì¥¹before¤Ç»Ï¤Þ¤ë¹àÌܤÎľÁ°¤ËÁÞÆþ¤·¤Þ¤¹¡¥before¤¬
‘NULL’¤Î¾ì¹ç¡¤lt_dladdsearchdir
¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¤Î¤ÈƱÍͤ˸å
ÃÖ¤·¤Þ¤¹¡¥À®¸ù»þ¤Ë¤Ï0¤òÊÖ¤·¤Þ¤¹¡¥
¸½ºß¤Î¥æ¡¼¥¶ÄêµÁ¤Î¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤òsearch_path¤ÇÃÖ´¹¤·¡¤¤½¤ì ¤Ï¥³¥í¥ó¤Çʬ¤±¤é¤ì¤¿ÀäÂÐŪ¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥ À®¸ù»þ¤Ë¤Ï0¤òÊÖ¤·¤Þ¤¹¡¥
¸½ºß¤Î¥æ¡¼¥¶ÄêµÁ¤Î¥é¥¤¥Ö¥é¥ê¸¡º÷¥Ñ¥¹¤òÊÖ¤·¤Þ¤¹¡¥
¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï¡¤´ûÃΤÎ̾Á°¤Ç¥â¥¸¥å¡¼¥ë¤ò¸ÄÊÌ¤Ë¥í¡¼¥É¤·¤¿¤¯
¤Ê¤¯¡¤¤à¤·¤í¥Ç¥£¥ì¥¯¥È¥ê¤ÎÁȤߤ«¤é¤¹¤Ù¤Æ¤Î¥â¥¸¥å¡¼¥ë¤ò¸«¤Ä¤±¤¿¤ê¡¤½é´ü
²½Ãæ¤Ë¤¹¤Ù¤Æ¥í¡¼¥É¤·¤¿¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡¥¤³¤Î´Ø¿ô¤òÍѤ¤¤ë¤È¡¤libltdl¤Ë
¸õÊä¤È¤Ê¤ësearch_pathÆâ¤Î¥³¥í¥ó¤ÇʬΥ¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¥ê¥¹¥È¤ò
Áöºº¤µ¤»¡¤¤½¤ì¤é¤òÆÈ¼«¤Î¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ôfunc¤ËÅϤ¹data¤ÈÊ»
¤»¤ÆÅϤ¹¤³¤È¤¬²Äǽ¤Ç¤¹¡¥seach_path¤¬‘NULL’¤Î¾ì¹ç¡¤
lt_dlopen
¤¬Ä´ºº¤¹¤ëɸ½àŪ¤Ê¾ì½ê¤ò¤¹¤Ù¤Æ¸¡º÷¤·¤Þ¤¹¡¥¤³¤Î´Ø¿ô¤Ï¡¤
¤³¤ì¤é¤Î¸Æ¤Ó½Ð¤·¤Î°ì¤Ä¤Ç¤â¥¼¥í°Ê³°¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¤Þ¤Ç¡¤¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¤¬
Ë´¤¯¤Ê¤ë¤Þ¤Ç¡¤search_path¤Ç¸«¤Ä¤«¤Ã¤¿¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¡¤
func¤ò¸Æ¤Ó½Ð¤·Â³¤±¤Þ¤¹¡¥‘lt_dlforeachfile’¤ÏºÇ¸å¤Î
func¤Î¸Æ¤Ó½Ð¤·¤ÎÊÖ¤êÃͤòÊÖ¤·¤Þ¤¹¡¥
Î㤨¤Ð¡¤ºÇ½é¤Î¥Ù¥¯¥È¥ë(ÇÛÎó)¤Î¥¢¥É¥ì¥¹¤òÊÝ»ý¤·¤Æ¤¤¤ëdata¤ò»ÈÍѤ· ¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¡¤½çÈ֤ˤʤäƤ¤¤ëargv¤Î¤è¤¦¤Ê¥Ù¥¯¥È¥ë(ÇÛÎó)¤ò¹½ ÃÛ¤¹¤ë¤¿¤á¤Ë¡¤func¤òÄêµÁ¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡¥
¥â¥¸¥å¡¼¥ë¤ò‘lt_dlclose’¤Ç¤¤Ê¤¤¤è¤¦¤Ë°õ¤òÉÕ¤±¤Þ¤¹¡¥¥â¥¸¥å¡¼¥ë¤¬ ¥×¥í¥¸¥§¥¯¥È¤ÎÃæ¿´Éô¤Îµ¡Ç½¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¾ì¹ç¡¤ºï½ü¤µ¤ì¤ë¤È¥³¡¼¥É¤¬²õ¤ì ¤ë¤Î¤Ç¡¤¤³¤ì¤ÏÌò¤ËΩ¤Ä¤Ï¤º¤Ç¤¹¡¥À®¸ù¤¹¤ë¤È0¤òÊÖ¤·¤Þ¤¹¡¥
¼Â¹Ô¤·¤Æ¤¤¤ë¥Ð¥¤¥Ê¥ê¤ËÂФ¹¤ëhandle¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë ‘lt_dlopen (NULL)’¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¤¤½¤Î¥Ï¥ó¥É¥ë¤Ï¾ïÃ󤷤Ƥ¤¤ë¤è¤¦ ¤Ê°õ¤¬¾ï¤ËÉÕ¤¡¤¤·¤¿¤¬¤Ã¤Æ¤¦¤Þ¤¯‘lt_dlclose’¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡¥
ÆÃÄê¤Î¥â¥¸¥å¡¼¥ë¤¬¾ïÃ󤷤Ƥ¤¤ë¤è¤¦¤Ë°õ¤¬ÉÕ¤¤¤Æ¤¤¤ë¤«¤É¤¦¤«Ä´ºº¤·¡¤¤½¤Î
¾ì¹ç¤Ï1¤òÊÖ¤·¡¤¤½¤ì°Ê³°¤Ç¤Ï0¤òÊÖ¤·¤Þ¤¹¡¥¤³¤Î´Ø¿ô¤Î¼Â¹ÔÃæ¤Ë¥¨¥é¡¼¤¬¤¢¤ë
¾ì¹ç¡¤ -1 ¤¬ÊÖ¤µ¤ì¡¤lt_dlerror
¤òÍѤ¤¤Æ²ó¼ý¤µ¤ì¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼
¥¸¤¬ÀßÄꤵ¤ì¤Þ¤¹¡¥
¤³¤ì¤é¤ÎÊÑ¿ô¤Ï¡¤¥Ç¥Õ¥©¥ë¥È¤Çmalloc
¤Èfree
¤ËÀßÄꤵ¤ì¤Þ¤¹¤¬¡¤
ƱÅù¤Îµ¡Ç½¤òÄ󶡤¹¤ë¾¤Î´Ø¿ô¤ËÀßÄê²Äǽ¤Ç¤¹¡¥¤·¤«¤·¡¤
lt_dlpreopen_default
¤ä¥Þ¥¯¥íLTDL_SET_PRELOADED_SYMBOLS
°Ê
³°¤Î¤¢¤é¤æ¤ëlibltdl´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸å¤Ë¡¤¤½¤ÎÃͤòÊÔ½¸¤¹¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»
¤ó¡¥
Next: Modules for libltdl, Up: Using libltdl [Contents][Index]