[ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): superm (hohoho) ³¯ Â¥ (Date): 2002³â 5¿ù 1ÀÏ ¼ö¿äÀÏ ¿ÀÀü 04½Ã 47ºÐ 27ÃÊ Á¦ ¸ñ(Title): [Áú¹®] .... ÇöÀç ¼öÇàÁßÀÎ ÇÁ·Î±×·¥À» »õ·Î ÄÄÆÄÀÏÇÏÁö ¾Ê°í ÀÓÀÇÀÇ ¶óÀ̺귯¸®³»ÀÇ ÇÑ ÇÔ¼ö¸¦ ºÎ¸£°Ô ÇÒ¼ö ÀÖ³ª¿ä? ¿¹¸¦ µé¾î¼­ ÇöÀç A¶ó´Â ÇÁ·Î±×·¥ÀÌ µ¹¾Æ°¡°í ÀÖ´Â »óÅ¿¡¼­ B¶óÀ̺긮³»ÀÇ ¶ó´Â b ¶ó´Â ÇÔ¼ö¸¦ ºÎ¸£°Ô ÇÏ´Â°É ÇÒ·Á°í Çϰŵç¿ä. ±Ùµ¥ A¸¦ »õ·ÎÀÌ ÄÄÆÄÀÏ ÇÏÁö ¾Ê°í¼­ ÇÒ·Á°í Çϴµ¥.. A¸¦ ´Ù½Ã ½ÃÀÛ½ÃÅ°´Â°Ç ±¦Âù±¸¿ä. A´Â b¿¡°Ô ³Ñ°ÜÁÙ ÀÎÀÚÀÇ ÇüÅÂ¿Í °¹¼ö´Â ¾Ë°í ÀÖÁö¸¸ À̸§À» ¸ð¸£´Â »óÅÂÀÔ´Ï´Ù. Á¦°¡ ºÁµµ ¹®Á¦¸¦ Àß ±â¼úÇÏÁö ¸øÇÑ°Å °°Àºµ¥... ÀÓÀÇÀÇ ÅؽºÆ® È­ÀÏÀ» ¸¸µé¾î¼­ A°¡ ½ÃÀÛÇÒ¶§ ±× È­ÀÏÀ» Àоîµé¿©¼­ ¹» ¾î¶»°Ô ÇÏ¸é ¾È µÉ±î¿ä? ±× È­Àϳ»¿¡´Â ¶óÀ̺귯¸® À̸§°ú ±× ÇÔ¼ö À̸§ÀÌ ÀûÇôÁ®ÀÖ°í. ¾ÏÆ° °í¼ö´ÔµéÀÇ Á¶¾ð ºÎŹµå¸³´Ï´Ù [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): shanx (rlatio) ³¯ Â¥ (Date): 2002³â 5¿ù 1ÀÏ ¼ö¿äÀÏ ¿ÀÈÄ 05½Ã 13ºÐ 36ÃÊ Á¦ ¸ñ(Title): Re: [Áú¹®] .... ±×³É ÀϹÝÀûÀÎ shared library¸¦ ¾²¸é µÇ´Â °Í ¾Æ´Ñ°¡¿ä? Ȥ½Ã Ç÷¯±×ÀÎ °°Àº °Í ¸¸µå½Ã´Â °Ç°¡¿ä? ¸®´ª½º³ª ¼Ö¶ó¸®½º¶ó¸é man dlopen Çغ¸½Ã°í HPUX °è¿­¿¡¼­´Â shl_load °°Àº ÇÔ¼ö°¡ ÀÖÁö¿ä. À¯´Ð½º¸¶´Ù shared libÀº ¾²´Â ¹æ¹ýÀÌ Á¶±Ý¾¿ ´Þ¶ó¼­ gtkÀÇ glib¸¦ ¾´´Ù¸é À¯´Ð½º Á¾·ù¿¡ »ó°ü¾øÀÌ Æ÷ÅͺíÇÏ°Ô g_module_open()°°À» °É ¾µ ¼ö°¡ ÀÖ°í libtoolÀ» ¾²¸é ÄÄÆÄÀÏÇÒ ¶§ ½±°í Æ÷ÅͺíÇÏ°Ô shared object¸¦ ¸¸µé ¼ö°¡ ÀÖ½À´Ï´Ù. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): terzeron (microkid) ³¯ Â¥ (Date): 2002³â 5¿ù 1ÀÏ ¼ö¿äÀÏ ¿ÀÈÄ 05½Ã 07ºÐ 04ÃÊ Á¦ ¸ñ(Title): Re: [Áú¹®] .... ´äÀº ¹Ù·Î ȯ°æ º¯¼ö¿¡ ÀÖ½À´Ï´Ù. LD_LIBRARY_PATH³ª LD_PRELOAD º¯¼ö¸¦ ÀÌ¿ëÇÏ¸é ¶óÀ̺귯¸®¸¦ µ¿ÀûÀ¸·Î ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ±× ¶óÀ̺귯¸®¸¦ ±¸¼ºÇÏ´Â ¿ÀºêÁ§Æ®ÀÇ ¼Ò½º ÆÄÀÏ¿¡ ÇÔ¼ö Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇؼ­ ¿øÇÏ´Â ÇÔ¼öÀÇ symbolÀ» ´ëÀÔÇØ ÁÖ¸é µË´Ï´Ù. ÀÌ·¯¸é ÇØ´ç ¶óÀ̺귯¸®¸¦ ¼±ÅÃÇÒ ¶§ ÇØ´ç ÇÔ¼ö¸¦ °áÁ¤ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î, 3¹è¿Í 4¹èÀÇ °ªÀ» ¹ÝȯÇÏ´Â ÇÔ¼ö¸¦ ¹Ù²ã°¡¸é¼­ ¾´´Ù°í Çϸé... ---test1.c-------------- int quadruple(int a) { return a * 4; void (*a) = quadruple; ---test2.c ----------- int triple(int a) { return a * 3; } void (*a) = triple; ---test.c-------------- #include int (*a)(); int main() { printf("%d\n", a(3)); return 0; } test1.c¿Í test2.c¸¦ °¢°¢ÀÇ so·Î ¸¸µé°í À§ÀÇ È¯°æº¯¼ö¸¦ ÀÌ¿ëÇÏ¿© µû·Î µ¿ÀûÀ¸·Î ¸µÅ©Çؼ­ »ç¿ëÇÏ¸é µÇ°ÚÁÒ. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): monster (Dr.è¦×â) ³¯ Â¥ (Date): 2002³â 5¿ù 2ÀÏ ¸ñ¿äÀÏ ¿ÀÀü 04½Ã 51ºÐ 21ÃÊ Á¦ ¸ñ(Title): Re: [Áú¹®] .... ¸î³âÀü(°ÅÀÇ ½Ê³âÀüÀ̱º¿ä...)¿¡ Coplien(öÀÚ ¸Â³ª?)¾¾°¡ ÁöÀº Advanced C++ Programming (Ã¥Á¦¸ñµµ °¡¹°°¡¹°Çϱº¿ä. ħ¾ÖÀΰ¡ º¾´Ï´Ù. -.-) ¿¡¼­ ºÃ´ø ¼öÀÛÀº µ¿ÀûÀ¸·Î c fileÀ» ¸¸µé°í exec·Î cc¸¦ ºÒ·¯ compileÇÑ´ÙÀ½ ±×°É memory·Î ¿Ã¸®´Â ``¿±±âÀû''ÀÎ ¹æ¹ýÀ» º»ÀûÀÌ ÀÖ½À´Ï´Ù. -.- ¹æ±Ý ¾Æ¸¶Á¸ µÚÁ®¼­ ã¾Ò½À´Ï´Ù. ÀúÀÚ: James O. Coplien Á¦¸ñ: Advanced C++ Programming Styles and Idioms Publisher: Addison-Wesley Pub Co ISBN: 0201548550; (September 1991) [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): oldfield (ô¸ò¢ÝÕìÒ *) ³¯ Â¥ (Date): 2002³â 5¿ù 2ÀÏ ¸ñ¿äÀÏ ¿ÀÀü 09½Ã 37ºÐ 28ÃÊ Á¦ ¸ñ(Title): Re: [Áú¹®] .... UNIX platform¿¡¼­ shared library¸¦ Áö¿øÇÑ´Ù¸é.. dlopen, dlsym °°Àº ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. man dlopenÇØ º¸¼¼¿ä. ´Ü, È£ÃâÇÒ ÇÔ¼öÀÇ prototypeÀº Á¤ÇØÁ® ÀÖ¾î¾ß°ÚÁö¿ä.