|
ÃÑ ÆäÀÌÁö ¼ö : 3121
![]()
|
ÇöÀçÀ§Ä¡ : ¹Ì´Ï»çÀÌÆ®>C>Documents>Make_Library ![]() Ãß°¡ÇÒ ³»¿ë
nmÀ» ÀÌ¿ëÇÏ¸é ¶óÀ̺귯¸®¿¡ Æ÷ÇÔµÈ ¿ÀºêÁ§Æ®¿Í ÇÔ¼ö¸í±îÁö È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
# nm libproc.a alloc.o: nm: alloc.o: no symbols compare.o: nm: compare.o: no symbols devname.o: nm: devname.o: no symbols ksym.o: nm: ksym.o: no symbols
1절. ¼Ò°³ÀÌ ¹®¼´Â library ÀÇ »ç¿ë¹æ¹ý¿¡ ´ëÇÑ ³»¿ëÀ» ´ã°í ÀÖ´Ù. ¿Ö ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÑÁö, ¶óÀ̺귯¸®´Â ¾î¶² Á¾·ù°¡ ÀÖÀ¸¸ç, ¾î¶»°Ô ÀÛ¼ºÇÒ¼ö ÀÖ´ÂÁö, ±×¸®°í ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö¿¡ ´ëÇØ¼ ¾ê±âÇϵµ·Ï ÇÒ°ÍÀÌ´Ù. ±×¸®°í Áß°£Áß°£¿¡ ÀÌÇØ¸¦ µ½±â À§ÇÑ ½ÇÁ¦ ÄÚµù¿ª½Ã µé¾î°¥ °ÍÀÌ´Ù. ¶óÀ̺귯¸®¿¡ ´ëÇÑ ÀÌ·¯Àú·¯ÇÑ ¼¼ºÎÀûÀÎ ³»¿ë±îÁö ´Ù·çÁø ¾ÊÀ»°ÍÀÌ´Ù. Á»´õ ÀÌ·ÐÀûÀÎ ³»¿ëÀ» ÇÊ¿ä·Î ÇÑ´Ù¸é Program Library HOWTO ¸¦ Âü°íÇϱ⠹ٶõ´Ù. ÀÌ ¹®¼¿¡¼´Â ¶óÀ̺귯¸®¸¦ ¸¸µé°í Ȱ¿ëÇÏ´Â ¸é¿¡ ÁßÁ¡À» µÑ°ÍÀÌ´Ù. ±×·¯¹Ç·Î À§ÀÇ ¹®¼´Â À̹®¼¸¦ ÀбâÀü¿¡ ´ëÃæÀÌ¶óµµ Çѹø Àоµµ·Ï ÇÑ´Ù. Á¤Àû ¶óÀ̺귯¸®¿Í °øÀ¯¶óÀ̺귯¸®´Â ÀϹÝÀûÀÎ ³»¿ëÀÓÀ¸·Î °£´ÜÇÑ ¼³¸í°ú ÀϹÝÀûÀÎ ¿¹Á¦¸¦ µå´Â Á¤µµ·Î ³Ñ¾î°¥ °ÍÀÌ´Ù. ±×·¯³ª µ¿Àû¶óÀ̺귯¸®¿¡ ´ëÇØ¼´Â ¸î°¡Áö ´Ù·ç¾î¾ßÇÒ À̽´µéÀÌ ÀÖÀ½À¸·Î ´Ù¸¥ °Íµé¿¡ ºñÇØ¼ Á»´õ ºñÁßÀÖ°Ô ´Ù·ç°Ô µÉ°ÍÀÌ´Ù. 2절. Library À̾߱â2.1절. ¶óÀ̺귯¸®¶õ ¹«¾ùÀΰ¡¶óÀ̺귯¸®¶õ ƯÁ¤ÇÑ ÄÚµå(ÇÔ¼ö ȤÀº Ŭ·¡½º)¸¦ Æ÷ÇÔÇϰí ÀÖ´Â ÄÄÆÄÀÏµÈ ÆÄÀÏÀÌ´Ù. ÀÌ·¯ÇÑ ¶óÀ̺귯¸®¸¦ ¸¸µå´Â ÀÌÀ¯´Â ÀÚÁÖ »ç¿ëµÇ´Â ƯÁ¤ÇÑ ±â´ÉÀ» main ÇÔ¼ö¿¡¼ ºÐ¸®½ÃÄÑ ³õÀ½À¸·Î½á, ÇÁ·Î±×·¥À» À¯Áö, µð¹ö±ëÀ» ½±°ÔÇϰí ÄÄÆÄÀÏ ½Ã°£À» Á»´õ ºü¸£°Ô ÇÒ¼ö Àֱ⠶§¹®ÀÌ´Ù. ¸¸¾à ¶óÀ̺귯¸®¸¦ ¸¸µéÁö ¾Ê°í ¸ðµç ÇÔ¼ö¸¦ main ¿¡ Áý¾î ³Ö´Â´Ù¸é, ¼öÁ¤ÇÒ¶§ ¸¶´Ù main Äڵ带 ¼öÁ¤ÇØ¾ß ÇÏ°í ´Ù½Ã ÄÄÆÄÀÏ ÇØ¾ß ÇÒ°ÍÀÌ´Ù. ´ç¿¬È÷ ¼öÁ¤Çϱ⵵ ¾î·Æ°í ÄÄÆÄÀÏ¿¡µµ ¸¹Àº ½Ã°£ÀÌ °É¸°´Ù. ¹Ý¸é ¶óÀ̺귯¸®È ÇØµÎ¸é ¿ì¸®´Â ÇØ´ç ¶óÀ̺귯¸®¸¸ ´Ù½Ã ÄÄÆÄÀÏ ½ÃÄѼ main ÇÔ¼ö¿Í ¸µÅ© ½ÃÄÑÁÖ¸é µÈ´Ù. ½Ã°£µµ ¾Æ³¥»Ó´õ·¯ ¼öÁ¤Çϱ⵵ ¸Å¿ì ½±´Ù. 2.2절. ¶óÀ̺귯¸®ÀÇ Á¾·ù¶óÀ̺귯¸®¿¡µµ ±× ¾²ÀÓ»õ¿¡ µû¶ó¼ ¿©·¯°¡Áö Á¾·ù°¡ ÀÖ´Ù(Å©°Ô 3°¡Áö). °¡Àå ÈçÇÏ°Ô ¾²Àϼö ÀÖ´Â "Á¤Àû¶óÀ̺귯¸®"¿Í "°øÀ¯¶óÀ̺귯¸®", "µ¿Àû¶óÀ̺귯¸®" °¡ ÀÖ´Ù. ÀÌµé ¶óÀ̺귯¸®°¡ ¼·Î ±¸ºÐµÇ¾îÁö´Â Ư¡Àº ÀûÀç ½Ã°£ÀÌ µÉ°ÍÀÌ´Ù.
2.2.1절. ¿Ö Á¤Àû¶óÀ̺귯¸®ÀÇ »ç¿ëÀ» Áö¾çÇϴ°¡¿¹Àü¿¡ libz ¶ó´Â ¶óÀ̺귯¸®¿¡ º¸¾È ¹®Á¦°¡ »ý°Ü¼ ÇÑ⠽òô·¯¿ü´øÀûÀÌ ÀÖ´Ù. libz ¶óÀ̺귯¸®´Â °¢Á¾ ¼¹öÇÁ·Î±×·¥¿¡ ¸Å¿ì ³Î¸® »ç¿ëµÇ´Â ¶óÀ̺귯¸®¿´´Âµ¥, ½ÇÁ¦ ¹®Á¦°¡ µÇ¾ú´ø ÀÌÀ¯´Â ¸¹Àº libz ¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥µéÀÌ "Á¤Àû¶óÀ̺귯¸®" Çü½ÄÀ¸·Î ¶óÀ̺귯¸®¸¦ »ç¿ëÇ߱⠶§¹®¿¡, ¹ö±×ÇȽº(bug fix)¸¦ À§Çؼ´Â ¹®Á¦°¡ µÇ´Â libz ¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥µéÀ» ´Ù½Ã ÄÄÆÄÀÏ ½ÃÄÑ¾ß Ç߱⠶§¹®ÀÌ´Ù. ÇѸ¶µð·Î ¹ö±×ÇȽº ÀÚü°¡ ¾î·Á¿ü´ø°Ô Å« ¹®Á¦¿´¾ú´Ù. µµ´ëü ÀÌ ÇÁ·Î±×·¥µéÀÌ libz ¸¦ »ç¿ëÇϰí ÀÖ´ÂÁö ±×·¸Áö ¾ÊÀºÁö¸¦ ¿ÏÀüÇÏ°Ô ¾Ë±âµµ Èûµé»Ó´õ·¯, ¾ðÁ¦ ±×¸¹Àº ÇÁ·Î±×·¥À» ´Ù½Ã ÄÄÆÄÀÏ ÇÑ´Ü ¸»Àΰ¡. ¸¸¾à libz ¸¦ Á¤ÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê°í "°øÀ¯¶óÀ̺귯¸®" ÇüÅ·Π»ç¿ëÇÑ´Ù¸é bug fix °¡ ÈξÀ ½¬¿üÀ»°ÍÀÌ´Ù. ¿Ö³Ä¸é libz °øÀ¯¶óÀ̺귯¸®´Â Çϳª¸¸ ÀÖÀ» °ÍÀ̹ǷΠÀ̰͸¸ ¾÷±×·¹ÀÌµå ½ÃÄÑÁÖ¸é µÇ±â ¶§¹®ÀÌ´Ù. ¾Æ¹¸µç ÀÌ·¸°Ô À¯¿¬¼ºÀÌ Áö³ªÄ¡°Ô ¶³¾îÁø´Ù´Â Ãø¸éÀÌ Á¤Àû¶óÀ̺귯¸®¸¦ »ç¿ëÇÏÁö ¾Ê´Â °¡Àå Å« ÀÌÀ¯°¡ µÉ°ÍÀÌ´Ù. ÇÁ·Î±×·¥µéÀÇ µ¢Ä¡°¡ Ä¿Áö´Â ¹®Á¦´Â À¯¿¬¼º ¹®Á¦¿¡ ºñÇÏ¸é ±×¸®Å«¹®Á¦°¡ µÇÁö´Â ¾ÊÀ»°ÍÀÌ´Ù. 3절. ¶óÀ̺귯¸® ¸¸µé°í »ç¿ëÇϱâÀ̹øÀå¿¡¼´Â ½ÇÁ¦·Î ¶óÀ̺귯¸®¸¦ ¸¸µé°í »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ °¢ ¶óÀ̺귯¸® Á¾·ùº°·Î ¾Ë¾Æº¼ °ÍÀÌ´Ù. 3.1절. ¶óÀ̺귯¸®È ÇÒ ÄÚµå¶óÀ̺귯¸®ÀÇ À̸§Àº libmysum ÀÌ µÉ°ÍÀ̸ç, ¿©±â¿¡´Â 2°³ÀÇ ÇÔ¼ö°¡ µé¾î°¥ °ÍÀÌ´Ù. Çϳª´Â µ¡¼ÀÀ» ÇÒ ÇÔ¼ö·Î "ysum" ¶Ç Çϳª´Â »¬¼ÀÀ» À§ÇÑ ÇÔ¼ö·Î "ydiff" À¸·Î ÇÒ°ÍÀÌ´Ù. ÀÌ ¶óÀ̺귯¸®¸¦ ¸¸µé±â À§Çؼ mysum.h ¿Í mysum.c 2°³ÀÇ ÆÄÀÏÀÌ ¸¸µé¾îÁú°ÍÀÌ´Ù. mysum.h
mysun.c
3.2절. Á¤Àû¶óÀ̺귯¸® Á¦ÀÛÁ¤Àû¶óÀ̺귯¸®´Â À§¿¡¼ ¸»ÇßµíÀÌ ´Ü¼øÈ÷ ¿ÀºêÁ§Æ®(.o)µéÀÇ ¸ðÀÓÀÌ´Ù. ¿ÀºêÁ§Æ®¸¦ ¸¸µç´ÙÀ½¿¡ ar À̶ó´Â ¸í·ÉÀ» ÀÌ¿ëÇØ¼ ¶óÀ̺귯¸® ¾ÆÄ«À̺긦 ¸¸µé¸é µÈ´Ù.
ÀÌÁ¦ ¶óÀ̺귯¸®°¡ ½ÇÁ¦·Î »ç¿ë°¡´ÉÇÑÁö Å×½ºÆ®Çغ¸µµ·Ï ÇÏÀÚ. ¿¹Á¦ : print_sum.c
À§ÀÇ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ Çϱâ À§Çؼ´Â ¶óÀ̺귯¸®ÀÇ À§Ä¡¿Í ¾î¶² ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ°ÍÀÎÁö¸¦ ¾Ë·ÁÁà¾ß ÇÑ´Ù. ¶óÀ̺귯¸®ÀÇ À§Ä¡´Â '-L' ¿É¼ÇÀ» ÀÌ¿ëÇØ¼ ¾Ë·ÁÁÙ¼ö ÀÖÀ¸¸ç, '-l' ¿É¼ÇÀ» ÀÌ¿ëÇØ¼ ¾î¶² ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ°ÍÀÎÁö¸¦ ¾Ë·ÁÁÙ¼ö ÀÖ´Ù. -l µÚ¿¡ »ç¿ëµÉ ¶óÀ̺귯¸® À̸§Àº ¶óÀ̺귯¸®ÀÇ À̸§¿¡¼ "lib"¿Í È®ÀåÀÚ "a"¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö À̸§ÀÌ´Ù. Áï libmysum.a ¸¦ »ç¿ëÇÒ °ÍÀ̶ó¸é "-lmysum" ÀÌ µÉ°ÍÀÌ´Ù.
Á¤Àû¶óÀ̺귯¸® »óÅ·ΠÄÄÆÄÀÏÇÑ ÇÁ·Î±×·¥ÀÇ °æ¿ì ÄÄÆÄÀϽÿ¡ ¶óÀ̺귯¸®°¡ Æ÷ÇԵǹǷΠ¶óÀ̺귯¸®¸¦ ÇÔ²² ¹èÆ÷ÇÒ ÇÊ¿ä´Â ¾ø´Ù. 3.3절. °øÀ¯¶óÀ̺귯¸® Á¦ÀÛ / »ç¿ëprint_sum.c °¡ ÄÄÆÄÀϵDZâ À§Çؼ »ç¿ëÇÒ ¶óÀ̺귯¸® ÇüŰ¡ Á¤Àû¶óÀ̺귯¸®¿¡¼ °øÀ¯¶óÀ̺귯¸®·Î ¹Ù²î¿´´Ù°í ÇØ¼ print_sum.c ÀÇ Äڵ尡 º¯°æµÇ´Â°Ç ¾Æ´Ï´Ù. ÄÄÆÄÀÏ ¹æ¹ý¿ª½Ã µ¿ÀÏÇÏ¸ç ´ÜÁö ¶óÀ̺귯¸® Á¦ÀÛ¹æ¹ý¿¡ À־¸ Â÷À̰¡ ³¯»ÓÀÌ´Ù. ÀÌÁ¦ À§ÀÇ mysum.c ¸¦ °øÀ¯¶óÀ̺귯¸® ÇüÅ·Π¸¸µé¾îº¸ÀÚ. °øÀ¯¶óÀ̺귯¸®´Â º¸Åë .so ÀÇ È®ÀåÀÚ¸¦ °¡Áø´Ù.
ÄÄÆÄÀÏ ¹æ¹ýÀº Á¤Àû¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÑ ÄÚµåÀÇ ÄÄÆÄÀÏ ¹æ¹ý°ú µ¿ÀÏÇÏ´Ù.
°øÀ¯¶óÀ̺귯¸®´Â ½ÇÇà½Ã¿¡ ¶óÀ̺귯¸®¸¦ ÀûÀçÇÔÀ¸·Î ÇÁ·Î±×·¥À» ¹èÆ÷ÇÒ¶§´Â °øÀ¯¶óÀ̺귯¸®µµ ÇÔ²² ¹èÆ÷µÇ¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ»°æ¿ì ´ÙÀ½°ú °°ÀÌ °øÀ¯¶óÀ̺귯¸®¸¦ ãÀ»¼ö ¾ø´Ù´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ¸é¼ ÇÁ·Î±×·¥ ½ÇÇàÀÌ Áß´ÜµÉ °ÍÀÌ´Ù.
¸¸¾à libmysub.so °¡ /usr/my/lib ¿¡ º¹»çµÇ¾î ÀÖ°í ȯ°æº¯¼ö¸¦ ÅëÇØ¼ ¶óÀ̺귯¸®ÀÇ À§Ä¡¸¦ ¾Ë·ÁÁÖ°íÀÚ ÇÒ¶§´Â ¾Æ·¡¿Í °°ÀÌ ÇϸéµÈ´Ù.
3.4절. µ¿Àû¶óÀ̺귯¸®ÀÇ »ç¿ëµ¿Àû¶óÀ̺귯¸®¶ó°í ÇØ¼ µ¿Àû¶óÀ̺귯¸®¸¦ ¸¸µé±â À§ÇÑ ¾î¶² Ưº°ÇÑ ¹æ¹ýÀÌ Àִ°ÍÀº ¾Æ´Ï´Ù. ÀÏ¹Ý °øÀ¯¶óÀ̺귯¸®¸¦ ±×´ë·Î ¾²¸ç, ´ÜÁö ½ÇÇà½Ã°£¿¡ µ¿Àû¶óÀ̺귯¸®¸¦ È£ÃâÇϱâ À§ÇÑ ¹æ¹ý»óÀÇ Â÷À̸¸ Á¸ÀçÇÒ »ÓÀÌ´Ù. Á¤Àû/°øÀ¯ ¶óÀ̺귯¸®°¡ ¶óÀ̺귯¸®ÀÇ »ý¼º¹æ¹ý°ú ÄÄÆÄÀϹæ¹ý¿¡ ¾à°£ÀÇ Â÷À̸¸ ÀÖ°í ÄÚµå´Â µ¿ÀÏÇÏ°Ô »ç¿ëµÇ¾ú´ø°Í°ú´Â ´Þ¸® µ¿Àû¶óÀ̺귯¸®´Â ÄÚµåÀÚü¿¡ Â÷À̰¡ ÀÖ´Ù. ±×·²¼ö¹Û¿¡ ¾ø´Â°Ô, µ¿Àû¶óÀ̺귯¸®´Â ÇÁ·Î±×·¥ÀÌ »øÇàµÇ´Â Áß¿¡ ƯÁ¤ÇÑ ½ÃÁ¡¿¡¼ ºÎ¸£°í ½ÍÀ»¶§ ¶óÀ̺귯¸®¸¦ ÀûÀçÇØ¾ß ÇϹǷÎ, ¶óÀ̺귯¸®¸¦ ÀûÀçÇϰí, »ç¿ëÇϰí ÇØÁ¦(free) Çϱâ À§ÇÑ Äڵ带 »ý¼ºÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. linux ¿¡¼´Â ÀÌ·¯ÇÑ ¶óÀ̺귯¸®¸¦ È£ÃâÇϱâ À§ÇÑ ¾Æ·¡¿Í °°Àº ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù. ¾Æ·¡ÀÇ ÇÔ¼öµéÀº solaris ¿¡¼ µ¿ÀÏÇÏ°Ô »ç¿ëµÉ¼ö ÀÖ´Ù.
dlerror ´Â dl °ü·ÃÇÔ¼öµéÀÌ Á¦´ë·Î ÀÛµ¿À» ¼öÇàÇÏÁö ¾Ê¾ÒÀ»°æ¿ì ¿¡·¯¸Þ½ÃÁö¸¦ µÇµ¹·ÁÁØ´Ù. dleooro(), dlsym(), dlclose(), dlopen(3)Áß ¸¶Áö¸· È£ÃâµÈ ÇÔ¼öÀÇ ¿¡·¯¸Þ½ÃÁö¸¦ µÇµ¹·ÁÁØ´Ù. dlsym Àº dlopen(3) À» ÅëÇØ¼ ¿¸°¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ¼ö ÀÖµµ·Ï ½Éº¼°ªÀ» ã¾ÆÁØ´Ù. ½Éº¼À̶ó°í Çϸé Á» ¾Ö¸ÅÇѵ¥, ½Éº¼°ªÀº Áï ¿¸°¶óÀ̺귯¸®¿¡¼ ¿©·¯ºÐÀÌ ½ÇÁ¦·Î È£ÃâÇÒ ÇÔ¼öÀÇÀ̸§À̶ó°í »ý°¢ÇÏ¸é µÈ´Ù. handle ´Â dlopen(3) ¿¡ ÀÇÇØ¼ ¹ÝȯµÈ °ªÀÌ´Ù. symbol Àº ¿¸°¶óÀ̺귯¸®¿¡¼ ¿©·¯ºÐÀÌ ½ÇÁ¦·Î ºÎ¸£°ÔµÉ ÇÔ¼öÀÇ À̸§ÀÌ´Ù. dlsym ÀÇ ¸®ÅϰªÀº dlopen À¸·Î ¿¸° ¶óÀ̺귯¸®ÀÇ È£ÃâÇÔ¼ö¸¦ °¡¸£Å°°Ô µÈ´Ù. ¸®ÅϰªÀ» º¸¸é void * ÇüÀ¸·Î µÇ¾î Àִµ¥, void ÇüÀ» »ç¿ëÇÏÁö ¸»°í È£ÃâÇÔ¼ö°¡ ¸®ÅÏÇÏ´Â ÇüÀ» Á÷Á¢¸í½ÃÇϵµ·Ï ÇÏÀÚ. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ³ªÁß¿¡ ÇÁ·Î±×·¥À» À¯Áöº¸¼ö°¡ Á»´õ ¼ö¿ùÇØÁø´Ù. 3.5절. µ¿Àû¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© ÇÁ·Î±×·¥ÀÇ È®À强°ú À¯¿¬¼ºÀ» ³ôÀ⵿̱Àû¶óÀ̺귯¸®´Â ½ÇÇà½Ã°£¿¡ ÇÊ¿äÇÑ ¶óÀ̺귯¸®¸¦ È£ÃâÇÒ¼ö ÀÖÀ½À¸·Î Á¶±Ý¸¸(»ç½ÇÀº ¾ÆÁÖ ¸¹À̰ÚÁö¸¸ T.T) ½Å°æ¾´´Ù¸é ¸Å¿ì È®À强³ô°í À¯¿¬ÇÑ ÇÁ·Î±×·¥À» ¸¸µé¼ö ÀÖ´Ù. µ¿Àû¶óÀ̺귯¸®ÀÇ °¡Àå ´ëÇ¥ÀûÀÎ ¿¹°¡ ¾Æ¸¶µµ Plug-in ÀÌ ¾Æ´Ò±î ½Í´Ù. ¸¸¾à¿¡ ¸ðÁú¶ó ºê¶ó¿ìÀú°¡ plug-in À» Áö¿øÇÏÁö ¾Ê´Â ´Ù¸é ¿ì¸®´Â »õ·Î¿î ±â´Éµé ÀÌ Ãß°¡µÉ¶§ ¸¶´Ù ºê¶ó¿ìÀú¸¦ ´Ù½Ã ÄÚµùÇϰí ÄÄÆÄÀÏÇÏ´Â ¼ö°í¸¦ ÇØ¾ßÇÒ°ÍÀÌ´Ù. ±×·¯³ª µ¿Àû¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¸é ºê¶ó¿ìÀú¸¦ ´Ù½Ã ÄÚµùÇϰí ÄÄÆÄÀÏ ÇÒÇÊ¿ä ¾øÀÌ, ÇØ´ç ±â´ÉÀ» Áö¿øÇÏ´Â ¶óÀ̺귯¸® ÆÄÀϸ¸ ¹Þ¾Æ¼ ƯÁ¤ µð·ºÅ丮¿¡ ¼³Ä¡Çϱ⸸ ÇÏ¸é µÉ°ÍÀÌ´Ù. ¹°·Ð µ¿Àû¶óÀ̺귯¸®¸¦ »ç¿ëÇϱ⸸ ÇÑ´Ù°í ÇØ¼ ÀÌ·¯ÇÑ ±â´ÉÀÌ ¹Ù·Î ±¸ÇöµÇ´Â °Ç ¾Æ´Ï´Ù. Plug-in ÀÇ È¿À²ÀûÀÎ ±¸¼ºÀ» À§ÇÑ Ç¥ÁØÈµÈ API¸¦ Á¦°øÇÏ°í ¿©±â¿¡ ¸Â°Ô Plug-in ¿ë ¶óÀ̺귯¸®¸¦ Á¦ÀÛÇØ¾ß¸¸ ÇÒ°ÍÀÌ´Ù. ¿ì¸®°¡ Áö±Ý±îÁö ¾ê·Îµç ÇÁ·Î±×·¥À» º¸¸é ÇöÀç '+', '-' ¿¬»êÀ» Áö¿øÇϰí Àִµ¥, ¸¸¾à 'x', '/' ¿¬»êÀ» Áö¿øÇÏ´Â ¶óÀ̺귯¸®°¡ ¸¸µé¾îÁ³´Ù¸é, ¿ì¸®´Â ÇÁ·Î±×·¥ÀÇ ÄÚµùÀ» ´Ù½ÃÇØ¾ß¸¸ ÇÒ°ÍÀÌ´Ù. À̹ø¿¡´Â µ¿Àû¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇØ¼ plug-in ¹æ½ÄÀÇ È®ÀåÀÌ °¡´ÉÇϵµ·Ï ÇÁ·Î±×·¥À» ´Ù½Ã ¸¸µé¾î º¸µµ·Ï ÇÒ°ÍÀÌ´Ù. 3.5.1절. µ¿Àû¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÑ ¿¹Á¦µ¿Àû¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇØ¼ main ÇÁ·Î±×·¥ÀÇ ÀçÄÚµù ¾øÀÌ Ãß°¡µÇ´Â »õ·Î¿î ±â´ÉÀ» Ãß°¡½Ã۱â À§Çؼ´Â ÅëÀÏµÈ ÀÎÅÍÆäÀ̽º¸¦ Áö´Ï´Â ƯÁ¤ÇÑ Çü½ÄÀ» °¡Áöµµ·Ï ¶óÀ̺귯¸®°¡ ÀÛ¼ºµÇ¾î¾ß Çϸç, ¼³Á¤ÆÄÀÏÀ» ÅëÇÏ¿©¼ ¾î¶² ¶óÀ̺귯¸®°¡ ºÒ¸®¾îÁ®¾ß ÇÏ´ÂÁö¿¡ ´ëÇÑ Á¤º¸¸¦ ÀоîµéÀϼö ÀÖ¾î¾ß ÇÑ´Ù. ±×·¡¼ ¾î¶² ±â´ÉÀ» Ãß°¡½Ã۰íÀÚ ÇÑ´Ù¸é Æ¯Á¤ Çü½Ä¿¡ ¸Âµµ·Ï ¶óÀ̺귯¸®¸¦ Á¦ÀÛÇϰí, ¼³Á¤ÆÄÀÏÀ» º¯°æÇÏ´Â Á¤µµ·Î ¸¸µé¾îÁø »õ·Î¿î ¶óÀ̺귯¸®ÀÇ ±â´ÉÀ» ÀÌ¿ëÇÒ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¼³Á¤ÆÄÀÏÀº ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ¸¸µé¾îÁø´Ù. ¼³Á¤ÆÄÀÏÀÇ À̸§Àº plugin.cfg ¶ó°í Á¤Çß´Ù.
´ÙÀ½Àº µ¿Àû¶óÀ̺귯¸®·Î ¸¸µé¾îÁø print_sum ÀÇ »õ·Î¿î ¹öÁ¯ÀÌ´Ù. ¿¹Á¦ : print_sum_dl.c
ÀÚ ÀÌ·¸°Ô ÇØ¼ ¿ì¸®´Â '+', '-' ¿¬»êÀÌ °¡´ÉÇÑ ÇÁ·Î±×·¥À» Çϳª ¸¸µé°Ô µÇ¾ú´Ù. ±×·±µ¥ A ¶ó´Â °³¹ßÀÚ°¡ '*','/' ¿¬»êµµ ÀÖÀ¸¸é ÁÁ°Ú´Ù°í »ý°¢Çؼ ¾Æ·¡¿Í °°Àº Äڵ带 °¡Áö´Â '*', '/' ¿¬»êÀ» À§ÇÑ ¶óÀ̺귯¸®¸¦ Á¦ÀÛÇÏ¿´´Ù. ¿¹Á¦ : mymulti.h
A ¶ó´Â °³¹ßÀÚ´Â À̰ÍÀ» ´ÙÀ½°ú °°ÀÌ °øÀ¯¶óÀ̺귯¸® ÇüÅ·Π¸¸µé¾î¼ °£´ÜÇÑ ¶óÀ̺귯¸®ÀÇ ¼³¸í°ú ÇÔ²² email ·Î Àü¼ÛÇß´Ù.
¶óÀ̺귯¸®¸¦ ¹Þ¾ÒÀ¸¹Ç·Î »õ·Î¿î ¶óÀ̺귯¸®°¡ Á¦´ë·Î ÀÛµ¿À» ÇÏ´ÂÁö È®ÀÎÀ» ÇØº¸µµ·Ï ÇÏÀÚ. ¿ì¼± libmymulti.so.1.0.1 À» /usr/my/lib ·Î º¹»çÇϵµ·Ï ÇÏÀÚ. ±×´ÙÀ½ ¼³Á¤ÆÄÀÏ¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» °¡Áöµµ·Ï º¯°æ ½Ã۵µ·Ï ÇÏÀÚ.
À§¿¡¼µµ ¸»ÇßµíÀÌ ÀÌ·¯ÇÑ Plug-in ºñ½ÁÇÑ ±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ´Â ÅëÀÏµÈ ÇÔ¼ö API°¡ Á¦°øµÉ¼ö ÀÖ¾î¾ß ÇÑ´Ù. 4절. °á·Ð¿©±â¿¡ ÀÖ´Â ³»¿ëÁß µ¿Àû¶óÀ̺귯¸®¿¡ ´ëÇÑ ³»¿ëÀº ¼Ö¶ó¸®½º¿Í ¸®´ª½º¿¡¼¸¸ µ¿ÀÏÇÏ°Ô »ç¿ëÇÒ¼ö ÀÖ´Ù. Hp-Ux ȤÀº À©µµ¿ì¿¡¼´Â »ç¿ë°¡´ÉÇÏÁö ¾Ê´Â ¹æ¹ýÀÌ´Ù. ÀÌ¿¡ ´ëÇÑ ¸î°¡Áö ÇØ¹ýÀÌ Á¸ÀçÇϴµ¥, ÀÌ ³»¿ëÀº ³ªÁß¿¡ ½Ã°£ÀÌ µÇ¸é ´Ù·çµµ·Ï ÇϰڴÙ. ¾î¶µç ¼Ö¶ó¸®½º¿Í ¸®´ª½º »ó¿¡¼ ÄÚµùµÇ°í À©µµ¿ì ȤÀº ´Ù¸¥ À¯´Ð½º·Î Æ÷ÆÃµÉ ÇÁ·Î±×·¥ÀÌ ¾Æ´Ï¶ó¸é À§ÀÇ ¹æ¹ýÀ» »ç¿ëÇϴµ¥ ÀÖ¾î¼ ¹®Á¦°¡ ¾øÀ»°ÍÀÌ´Ù. |
|
||||||||||||||||||||
|
º¸³½ Æ®·¢¹é Á¤º¸ Ǫ¸¥ ´Þºû°ú ¼Ò³â :: °øÀ¯ ¶óÀ̺귯¸® 2009-07-09 15:20:00 äö²Ù·¯±âÀÇ ÃʽÉÀ¸·Î ´ëµ¿´Ü°á :: Á¤Àû, µ¿Àû ¶óÀ̺귯¸® 2009-07-09 15:22:00 ¹ÌÄ£µíÀÌ ¹è¿ö¶ó... :: gcc Á¤Àû ¶óÀ̺귯¸®¿Í µ¿Àû ¶óÀ̺귯¸® (.a .soÆÄÀÏ) 2009-07-09 15:27:00 bambit : °øÀ¯¶óÀ̺귯¸® ¸¸µé±â 2009-07-09 15:29:00 so_sal :: Linux - shared library Hijacking 2010-02-02 23:54:00 |
|
|