FreeBSDÀÇ C ¶óÀ̺귯¸®¿¡´Â ·ÎÄÉÀÏ¿¡ ´ëÇÑ ¿©·¯°¡Áö ÇÔ¼ö°¡ µé¾î ÀÖ½À´Ï´Ù.
À̵éÀº ÁÖ·Î wide character¶Ç´Â multibyte character¿¡ ´ëÇÑ ¹®ÀÚ¿
ó¸® ¶óÀ̺귯¸®¿Í ·ÎÄÉÀÏ¿¡ °ü·ÃµÈ ¿©·¯°¡Áö »çÇ×À» ´ã´çÇÕ´Ï´Ù.
ÁÖ·Î setlocal()·Î ½ÃÀÛÇÏ´Â ¿©·¯°¡Áö ÇÔ¼ö±ºÀ̶ó°í º¸½Ã¸é µË´Ï´Ù.
FreeBSD°¡ Áö¿øÇÏ´Â ¹®ÀÚ ÀÎÄÚµù¿¡´Â ¿©·¯°¡Áö°¡ ÀÖÁö¸¸ ÁÖ·Î 1¹ÙÀÌÆ®
(ASCII¿Í ISO-8859-x)¿Í ¸ÖƼ¹ÙÀÌÆ®(EUC, SJISµî)À¸·Î ³ª´ ¼ö ÀÖ½À´Ï´Ù.
À̵é Áß ¸ÖƼ¹ÙÀÌÆ® ÀÎÄÚµù¿¡ °ü·ÃµÈ ¶óÀ̺귯¸®´Â ¸ðµÎ libxpg4¶ó´Â
º°µµÀÇ ¶óÀ̺귯¸®¿¡ ºÐ¸®µÇ¾î ÀÖ½À´Ï´Ù(XPG4´Â À¯´Ð½º Ç¥ÁØ ´Üü À̸§ÀÌÀÚ
Ç¥ÁØÀÇ À̸§ÀÔ´Ï´Ù).
±×·¡¼ ÀÌ ¶óÀ̺귯¸®¿Í ÇÁ·Î±×·¥À» ¹Ì¸® ¸µÅ©½ÃŰ°Å³ª LD_PRELOAD¸¦
»ç¿ëÇØ¼ »çÀü ·ÎµùÇÏÁö ¾ÊÀ¸¸é ko_KR.EUC, ja_JP.EUC µîÀÇ ·ÎÄÉÀÏ·Î
setlocale()ÇÔ¼ö°¡ ¼º°øÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ¹®Á¦´Â Æø³Ð°Ô ¿µÇâÀ» ¹ÌÄ¡´Âµ¥,
±¹Á¦ÈµÈ XÀ©µµ¿ì ¾îÇø®ÄÉÀ̼ÇÀÌ libxpg4¿Í ¸µÅ©µÇ¾î ÀÖÁö ¾ÊÀ¸¸é
Çѱ¹¾î ·ÎÄÉÀÏ »ó¿¡¼µµ Çѱ¹¾î ÀÔÃâ·ÂÀÌ ºÒ°¡´ÉÇØÁö°í, more³ª vi°°Àº
±âº» ¸í·ÉÀº xpg4¿Í ¸µÅ©µÇ¾î ÀÖÁö ¾ÊÀ¸¹Ç·Î ÇÑ±Û ÀÔÃâ·ÂÀÌ ¾ÈµË´Ï´Ù.
ÇØ°áÃ¥Àº µÎ°¡Áö Áß ÇϳªÀÔ´Ï´Ù.
1. ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Â °æ¿ì ¸µÅ©½Ã¿¡ -lxpg4 ¸¦ ÁÖµµ·Ï ÇÑ´Ù.
2. ÄÄÆÄÀÏÇÒ ¼ö ¾ø°Å³ª ±ÍÂúÀº °æ¿ì
LD_PRELOAD=/usr/lib/libxpg4.so
ȯ°æº¯¼ö¸¦ ÁöÁ¤ÇÏ¿© ÇØ´ç ¾îÇø®ÄÉÀ̼ÇÀ» ºÎ¸¥´Ù.
ÁÖ·Î ¹®Á¦°¡ µÇ´Â °ÍÀº FreeBSDÀÇ ±âº» ½Ã½ºÅÛÀÌ xpg4¿Í ¸µÅ©ÇÏÁö ¾Ê¾Æ¼
´ëºÎºÐÀÇ ½Ã½ºÅÛ À¯Æ¿¸®Æ¼°¡(calÀ̳ª date°°Àº ¸ÖƼ¹ÙÀÌÆ® ÀÎÄÚµù ´ë½Å
LC_DATE¸¸À» »ç¿ëÇÏ´Â ¿¹¸¦ Á¦¿ÜÇϰí´Â) ÇÑ±Û ÀÔÃâ·ÂÀÌ °ÅÀÇ ¾ÈµÈ´Ù´Â
°ÍÀÔ´Ï´Ù. ±×·¡¼ óÀ½ FreeBSD¸¦ ¾²´Â »ç¶÷µéÀÌ ÇÑ±Û ÀÔÃâ·Â¿¡ ºÒÆíÀ»
°Þ½À´Ï´Ù.
Æ÷Æ®/ÆÐŰÁöµµ ¸¶Âù°¡Áö·Î xpg4¿Í ¸µÅ©ÇÏ´Â ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. ÃÖ±ÙÀÇ
X¾îÇø®ÄÉÀ̼ÇÀº ´ëºÎºÐ xpg4¶óÀ̺귯¸®¿Í ¸µÅ©Çϰí Àִµ¥, ´ëÇ¥ÀûÀÎ ¿¹°¡
XFree86, gtk+ µîÀÔ´Ï´Ù.
xpg4´Â ¿ø·¡ 2.1.x¹öÀü¿¡¼´Â ¾ø¾ú´Âµ¥ 2.2¿¡ ¿Í¼ »õ·Î ºÐ¸®µÈ °ÍÀÔ´Ï´Ù.
Ç¥¸éÀûÀ¸·Î °³¹ßÆÀ¿¡¼ ³»¼¼¿ì´Â ÀÌÀ¯´Â ºÒ¾ÈÁ¤¼ºÀÔ´Ï´Ù. C¶óÀ̺귯¸® ±¹Á¦È
±â´ÉÀÇ °³¹ß°ú ÀÌÈÄ ¹ßÀü¿¡ µû¶ó ´Ù½Ã xpg4 ¶óÀ̺귯¸®°¡ C¶óÀ̺귯¸® ¾È¿¡
Æ÷ÇÔµÇ¾î º° ¹®Á¦ ¾øÀ̵µ ¸ÖƼ¹ÙÀÌÆ® ÀÎÄÚµù »ç¿ë¿¡ ¹®Á¦°¡ ¾ø±æ ¹Ù¶ø´Ï´Ù.
Citrus Project¿¡¼´Â Free/Net/OpenBSD¸¦ À§ÇØ °øÅëÀÇ ¸ÖƼ¹ÙÀÌÆ®
·ÎÄÉÀÏ ±¸Çö ÇÁ·ÎÁ§Æ®¸¦ ÃßÁøÇϰí ÀÖ½À´Ï´Ù.
http://cirtus.bsdclub.org cjh |