27. ½Ã½ºÅÛ ±¸¼º ÆÄ¶ó¹ÌÅÍ
ÀÌ Àå¿¡ ¼³¸íµÈ ÇÔ¼öµé°ú ¸ÅÅ©·ÎµéÀº ¿î¿µÃ¼Á¦ÀÇ ±¸¼º ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù_½Ã½ºÅÛ ±¸¼º ÆÄ¶ó¹ÌÅÍ´Â, ¿¹¸¦µé¸é, ¿ë·®Á¦ÇÑ, ¼±ÅÃÀûÀÎ POSIX Ư¡ÀÇ Á¸Àç, ½ÇÇà ÆÄÀϵéÀ» À§ÇÑ µðÆúÆ® °æ ·Î(path) ( 27.12Àý[String Parameters] 379 ÆäÀÌÁö ÂüÁ¶.)
27.1 ÀϹÝÀûÀÎ ¿ë·® Á¦ÇÑ
POSIX.1 °ú POSIX.2 Ç¥ÁØÀº ½Ã½ºÅÛÀÇ ¿ë·® Á¦ÇѵéÀ» ³ªÅ¸³»´Â ÆÄ¶ó¹ÌÅÍÀÇ °³¼ö¸¦ Á¤ÇÑ´Ù. ±× Á¦ ÇѵéÀº ÁÖ¾îÁø ¿î¿µÃ¼Á¦¿¡¼ °íÁ¤µÈ »ó¼öÀ̰ųª, ¾Æ´Ï¸é ±â°è¸¶´Ù ´Ù¾çÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¸é, ¾î¶² Á¦ÇÑµÈ °ªÀº ½ÇÇàÇÒ¶§³ª, Ä¿³ÎÀ» ´Ù½Ã Àç°ÇÇÒ ¶§, ½Ã½ºÅÛ °ü¸®ÀÚ¿¡ ÀÇÇØ¼ ±¸¼ºµÉ ¼öÀÖ°í, À̰ÍÀº ÀÀ ¿ë ÇÁ·Î±×·¥µéÀÇ Àç ÄÄÆÄÀÏÀÌ ¿ä±¸µÇÁö ¾Ê´Â´Ù.
´ÙÀ½ÀÇ Á¦ÇÑ ÆÄ¶ó¹ÌÅ͵éÀº ÆÄ¶ó¹ÌÅÍ¿¡ ´ÜÀÏÇÑ Á¦ÇѰªÀ» °®´Â, °íÁ¤µÈ ½Ã½ºÅÛÀÏ °æ¿ì¿¡¸¸ 'limits.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù. ¸¸ÀÏ ½Ã½ºÅÛÀÌ ´Ù¸¥ ÆÄÀϽýºÅÛÀ̳ª ȤÀº ´Ù¸¥ Á¦ÇÑÀ» °®´Â ÆÄÀϵéÀ» Çã¿ëÇÑ´Ù¸é, ±× ¸ÅÅ©·Î´Â Á¤ÀǵÇÁö ¾Ê´Â´Ù; ƯÁ¤ÇÑ ½Ã½ºÅÛ¿¡¼ ƯÁ¤ÇÑ ½Ã°£¿¡ Àû¿ëµÇ´Â Á¦ÇÑÀ» ã¾Æ³»·Á¸é sysconf¸¦ »ç¿ëÇ϶ó. 27.4Àý [Sysconf] 371 ÆäÀÌÁö ÂüÁ¶.
±× ÆÄ¶ó¹ÌÅÍ °¢°¢Àº ´Ù¸¥ À̸§ÀÇ ¸ÅÅ©·Î¸¦ °®´Âµ¥, ±×°ÍÀº ¾î¶² POSIX½Ã½ºÅÛ¿¡¼ °®µµ·Ï Çã¿ëµÇ ´Â, ÃÖ¼ÒÇÑÀÇ Á¦ÇѰªÀÌ ÁÖ¾îÁö´Â, `_POSIX'·Î ½ÃÀÛÇÏ´Â ¹®ÀÚ¿ÀÌ´Ù. 27.5Àý [Minimums] 374 ÆäÀÌÁö ÂüÁ¶.
¸ÅÅ©·Î : int ARG__MAX
¸¸ÀÏ Á¤ÀǵǸé, execºÎ·ù ÇÔ¼öµé¿¡°Ô Àμö·Î ÁÙ ¼ö ÀÖ´Â argv¿Í ȯ°æº¯¼öµéÀÇ °áÇÕµÈ ÃÖ´ë±æÀ̸¦ ³ªÅ¸³¿. ±× ÃÖ´ë±æÀÌ´Â ºÒº¯ÀÌ´Ù.
¸ÅÅ©·Î : int CHILD__MAX
¸¸ÀÏ Á¤ÀǵǸé, ¾î¶² ½Ã°£¿¡ °°Àº ½ÇÁ¦ »ç¿ëÀÚ ID·Î Á¸ÀçÇÒ ¼ö ÀÖ´Â ÇÁ·Î¼¼½ºÀÇ ÃÖ´ë°³¼ö¸¦ ¸»ÇÔ. ±× ÃÖ´ë °³¼ö´Â ºÒº¯ÀÌ´Ù.
¸ÅÅ©·Î : int OPEN__MAX
¸¸ÀÏ Á¤ÀǵǸé, ´ÜÀÏÇÑ ÇÁ·Î¼¼½º°¡ µ¿½Ã¿¡ °³¹æÇÒ ¼ö ÀÖ´Â ÆÄÀϵéÀÇ ÃÖ´ë°³¼ö¸¦ ¸»ÇÑ´Ù. ±× ÃÖ´ë°³ ¼ö´Â ºÒº¯ÀÌ´Ù.
¸ÅÅ©·Î : int STREAM__MAX
¸¸ÀÏ Á¤ÀǵǸé, ´ÜÀÏÇÑ ÇÁ·Î¼¼½º°¡ µ¿½Ã¿¡ °³¹æÇÒ ¼ö ÀÖ´Â ½ºÆ®¸²ÀÇ ÃÖ´ë°³¼ö¸¦ ¸»ÇÑ´Ù. ±× ÃÖ´ë°³ ¼ö´Â ºÒº¯ÀÌ´Ù. 7.3Àý [Opening Streams] 64 ÆäÀÌÁö ÂüÁ¶.
¸ÅÅ©·Î : int TZNAME__MAX
¸¸ÀÏ Á¤ÀǵǸé, ½Ã°£´ë(time zone)ÀÇ ºÒº¯ÇÏ´Â ÃÖ´ë±æÀ̸¦ ¸»ÇÑ´Ù. 17.2.6 [Time Zone Functions] 241 ÆäÀÌÁö ÂüÁ¶.
´ÙÀ½ Á¦ÇÑ ¸ÅÅ©·ÎµéÀº `limits.h'¿¡ Ç×»ó Á¤ÀǵǾî ÀÖ´Ù.
¸ÅÅ©·Î : int NGROUPS__MAX
ÇÑ ÇÁ·Î¼¼½º°¡ °¡Áú ¼ö ÀÖ´Â ºÎ°¡ÀûÀÎ ±×·ì IDµéÀÇ ÃÖ´ë°³¼ö. ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº ½ÇÁ¦·Î´Â ÃÖ´ë°ªÀÇ ÇÏÇÑ °æ°èÀÌ´Ù. ±×°ÍÀº ´ç½ÅÀÌ ¾ó¸¶³ª ¸¹Àº ºÎ°¡ÀûÀÎ ±×·ì IDµéÀ» °¡Áú ¼ö ÀÖ´ÂÁö¸¦ ¾Ë ¼ö ÀÖ°Ô ÇÏ Áö¸¸, ¾î¶² ƯÁ¤ÇÑ ±â°è´Â ±×°Íº¸´Ù ´õ ¸¹Àº °ÍÀ» Çã¿ëÇϱ⵵ ÇÑ´Ù. ´ç½ÅÀº ¾î¶² ƯÁ¤ÇÑ ±â°è°¡ ´ç½Å ¿¡°Ô ´õ ¸¹Àº IDµéÀ» Çã¿ëÇÒ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇØ¼ ¾Ë¾Æº¸±â À§Çؼ sysconf ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.( 27.4 Àý [Sysconf] 371 ÆäÀÌÁö ÂüÁ¶.)
¸ÅÅ©·Î : int SSIZE__MAX
ŸÀÔ ssize_t ÀÇ ¿ÀºêÁ§Æ®¾È¿¡ ³ÖÀ» ¼ö ÀÖ´Â °¡Àå Å« °ª. È¿À²ÀûÀ̰Ô, À̰ÍÀº ´ÜÀÏÇÑ ¸í·É¿¡¼ ÀаŠ³ª ¾µ ¼ö ÀÖ´Â ¹ÙÀÌÆ®ÀÇ °³¼ö¿¡ ´ëÇÑ Á¦ÇÑÀÌ µÈ´Ù. ÀÌ ¸ÅÅ©·Î´Â Á¦ÇÑÀÌ ºÒº¯À̱⠶§¹®¿¡ ¸ðµç POSIX ½Ã½ºÅ۵鿡¼ Á¤ÀǵǾî ÀÖ´Ù.
¸ÅÅ©·Î : int RE__DUP__MAX
Á¤±ÔÇ¥Çö½ÄÀÇ `\{min,max\}'ÀÇ ±¸¼º¾È¿¡ Çã¿ëµÇ´Â ¹Ýº¹ÀÇ ÃÖ´ë°¹¼ö. ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº ½ÇÁ¦·Î´Â ÃÖ ´ë°ªÀÇ ÇÏÇâ °æ°è¼±ÀÌ´Ù. ±×°ÍÀº ´ç½ÅÀÌ ¾ó¸¶³ª ¸¹Àº ¹Ýº¹À» ÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¾Ë¸®Áö¸¸, ¾î¶² ƯÁ¤ÇÑ ±â°è´Â ±×°Íº¸´Ù ´õ ¸¹Àº ¹Ýº¹À» Çã¿ëÇÑ´Ù. ¾î¶² ƯÁ¤ÇÑ ±â°è°¡ ´õ ¸¹Àº ¹Ýº¹À» Çã¿ëÇÏ´ÂÁö¸¦ ¾Ë±â À§Çؼ´Â sysconf¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. (27.4Àý [Sysconf] 371 ÆäÀÌÁö ÂüÁ¶.) sysconfÀÇ °ªÀº ´ÜÁö ÇÏ Çâ °æ°èÀÇ °ªÀ» ¸»ÇØÁֹǷÎ_´õ Å«°ªÀ¸·Î ÀÛ¾÷ÇÒ ¼ö ÀÖ´Ù. POSIX.2 ½Ã½ºÅ۵鿡¼´Â ±×µé¿¡°Ô ¾î¶² Á¤ÇØÁø Á¦ÇѰªÀÌ ¾ø´Ù°í ÇÏ´õ¶óµµ Ç×»ó Á¤ÀǵǾî¾ß Çϱ⠶§¹®¿¡ ¸ðµç POSIX.2¿¡¼ ÀÌ ¸ÅÅ©·Î´Â Ç× »ó Á¤ÀǵǾî ÀÖ´Ù.
27.2 Æ÷°ýÀûÀÎ ½Ã½ºÅÛ ¿É¼Çµé.
POSIX ´Â ¸ðµç POSIX ½Ã½ºÅÛµéÀÌ Áö¿øÇÏÁö ¾Ê´Â ½Ã½ºÅÛ-¸í¼¼ ¿É¼ÇÀ» Á¤ÀÇÇÑ´Ù. ±× ¿É¼ÇµéÀº ¶ó À̺귯¸®°¡ ¾Æ´Ï¶ó Ä¿³Î¿¡ Á¦°øµÇ°í Àֱ⠶§¹®¿¡, °£´ÜÈ÷ GNU C ¶óÀ̺귯¸®¸¦ »ç¿ëÇØ¼´Â ±× ±â´É µéÀÌ Áö¿øµÊÀ» º¸ÁõÇÒ ¼ö ¾ø´Ù; ´ç½ÅÀÌ »ç¿ëÁßÀÎ ½Ã½ºÅÛ¿¡ ´Þ·ÁÀÖ´Ù.
ÀÌ Àý¿¡ ÀÖ´Â ¸ÅÅ©·Îµé°ú sysconf ÇÔ¼ö¸¦ ÇÔ²² »ç¿ëÇØ¼ ÁÖ¾îÁø ¿É¼ÇÀÇ À¯¿ë¼ºÀ» Å×½ºÆ®ÇÒ ¼ö ÀÖ ´Ù. ¸ÅÅ©·ÎµéÀº `unistd.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù. ´ÙÀ½ ¸ÅÅ©·ÎµéÀº, ¸¸ÀÏ ±× ¸ÅÅ©·ÎµéÀÌ `unistd.h'¿¡ Á¤ÀÇ µÇ¾îÀÖ´Ù¸é, ¿É¼ÇµéÀÌ Áö¿øµÇ´Â°ÍÀ̰í, ±×·¸Áö¾Ê´Ù¸é ¿É¼ÇÀÌ µÉ ¼öµµ ÀÖ°í µÇÁö¾ÊÀ» ¼öµµ ÀÖ´Ù; ¾Ë¾Æ ³»·Á¸é sysconf¸¦ »ç¿ëÇ϶ó. 27.4Àý [Sysconf] 371 ÆäÀÌÁö ÂüÁ¶.
¸ÅÅ©·Î : int __POSIX__JOB__CONTROL
¸¸ÀÏ ÀÌ ½Éº¼ÀÌ Á¤ÀǵǸé, ½Ã½ºÅÛÀÌ ÀÛ¾÷Á¦¾î¸¦ Áö¿øÇÔÀ» ¾Ë¸°´Ù. ±×·¸Áö¾Ê´Ù¸é, ÇÑ ¼¼¼Ç¿¡ ÀÖ´Â ¸ð µç ÇÁ·Î¼¼½ºµéÀº ´ÜÀÏÇÑ ÇÁ·Î¼¼½º ±×·ì¿¡ ¼Ò¼ÓµÇ¾îÀÖ´Ù. 24Àå [Job Control] 335 ÆäÀÌÁö ÂüÁ¶.
¸ÅÅ©·Î : int __POSIX__SAVED__IDS
¸¸ÀÏ ÀÌ ½Éº¼ÀÌ Á¤ÀǵǸé, ½ÇÇàÆÄÀÏÀÌ set-user-ID ¶Ç´Â set-group-ID ºñÆ®µéÀ» ¼³Á¤ÇÏ¿© ½ÇÇàµÇ±â Àü¿¡ ÇÁ·Î¼¼½ºÀÇ À¯È¿ »ç¿ëÀÚ¿Í ±×·ì IDµéÀ» ½Ã½ºÅÛÀÌ ±â¾ïÇß´Ù°¡ ³ªÁß¿¡ ±× °ªµéÀ» ´Ù½Ã ¹ÝȯÇÔÀ» ÀǹÌÇÑ´Ù. ÀÌ ¿É¼ÇÀÌ Á¤ÀǵÇÁö ¾ÊÀ¸¸é, ¸¸ÀÏ Æ¯±ÇÀ» °¡ÁöÁö ¾ÊÀº ÇÁ·Î¼¼½º°¡ ±× À¯È¿ »ç¿ëÀÚ¿Í ±×·ì ID ¸¦ ÇÁ·Î¼¼½ºÀÇ ½ÇÁ¦ »ç¿ëÀÚ ¶Ç´Â ±×·ì ID·Î º¯°æÇßÀ» ¶§ ±×°ÍÀ» ´Ù½Ã µÇµ¹¸±¼ö ¾ø´Ù. 25.8Àý [Enable/Disable Setuid] 357 ÆäÀÌÁö ÂüÁ¶.
´ÙÀ½ ¸ÅÅ©·Î¿¡¼, ¸¸ÀÏ ±× ¸ÅÅ©·ÎµéÀÌ `unistd.h'¿¡ Á¤ÀǵǸé, ±× °ªÀº ±× ¿É¼ÇÀÌ Áö¿øµÇ´ÂÁöÀÇ ¿©ºÎ ¸¦ ¾Ë¸°´Ù. -1ÀÇ °ªÀÇ Àǹ̴ ¾øÀ½À», Á¦¿ÜÇÑ ´Ù¸¥°ªÀº ÀÖÀ½À» ÀǹÌÇÑ´Ù. ¸¸ÀÏ ±× ¸ÅÅ©·Î°¡ Á¤ÀÇµÇ Áö ¾Ê¾Ò´Ù¸é, ±× ¿É¼ÇÀº Áö¿øµÉ ¼öµµ ÀÖ°í ¾ÈµÉ ¼öµµ ÀÖ´Ù; ¾Ë¾Æ³»·Á¸é sysconf¸¦ »ç¿ëÇ϶ó. 27.4Àý [Sysconf] 371 ÆäÀÌÁö ÂüÁ¶.
¸ÅÅ©·Î : int __POSIX2__C__DEV
¸¸ÀÏ ÀÌ ½Éº¼ÀÌ Á¤ÀǵǸé, ±×°ÍÀº ±× ½Ã½ºÅÛÀÌPOSIX.2 C ÄÄÆÄÀÏ·¯ ¸í·É, c89¸¦ °¡Áö°í ÀÖÀ½À» ¾Ë¸° ´Ù. GNU C ¶óÀ̺귯¸®´Â ¸¸ÀÏ ´ç½ÅÀÌ C ÄÄÆÄÀÏ·¯¸¦ °¡ÁöÁö ¾Ê¾Ò´Ù¸é ´ç½ÅÀÌ ±×°ÍÀ» ÀνºÅçÇÏÁö ¾Ê¾Ò´Ù´Â °¡Á¤À¸·Î, Ç×»ó ±× °ªÀ» 1·Î½á Á¤ÀÇÇÑ´Ù.
¸ÅÅ©·Î : int __POSIX2__FORT__DEV
¸¸ÀÏ ÀÌ ½Éº¼ÀÌ Á¤ÀǵǸé, ½Ã½ºÅÛÀÌ POSIX.2 Æ÷Æ®¶õ ÄÄÆÄÀÏ·¯ ¸í·É fort77À» °¡Áö°í ÀÖÀ½À» ¾Ë¸°´Ù. GNU C ¶óÀ̺귯¸®¿¡¼ ÀÌ °ªÀº °áÄÚ Á¤ÀǵÇÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î : int __POSIX2__FORT__RUN
¸¸ÀÏ ÀÌ ½Éº¼ÀÌ Á¤ÀǵǸé, ½Ã½ºÅÛÀÌ Æ÷Æ®¶õ ij¸®Áö Á¦¾î¸¦ ÇØ¼®Çϱâ À§ÇÑ ¸í·ÉÀ¸·Î POSIX.2 asa ¸í ·ÉÀ» °®°í ÀÖÀ½À» ÁöÀûÇÑ´Ù. GNU C ¶óÀ̺귯¸®´Â ±× ½Ã½ºÅÛÀÌ ¹«¾ùÀ» °¡Á³´ÂÁö ¾ËÁö¸øÇϱ⠶§¹®¿¡ ÀÌ ¸ÅÅ©·Î´Â °áÄÚ Á¤ÀÇÇÏÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î : int __POSIX2__LOCALEDEF
ÀÌ ½Éº¼ÀÌ Á¤ÀǵǸé, ½Ã½ºÅÛÀÌ POSIX.2 localedef ¸í·ÉÀ» °®°í ÀÖÀ½À» ¾Ë¸°´Ù. GNU C ¶óÀ̺귯¸® ´Â ±× ½Ã½ºÅÛÀÌ ¹«¾ùÀ» °¡Á³´ÂÁö ¾ËÁö ¸øÇϱ⠶§¹®¿¡ ÀÌ ¸ÅÅ©·Î´Â °áÄÚ Á¤ÀÇÇÏÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î : int __POSIX2__SW__DEV
ÀÌ ½Éº¼ÀÌ Á¤ÀǵǸé, ½Ã½ºÅÛÀÌ POSIX.2 ¸í·Éµé ar, make ±×¸®°í strip ¸¦ °¡Áö°í ÀÖÀ½À» ¾Ë¸°´Ù. GNU C ¶óÀ̺귯¸®¿¡¼, ar °ú make´Â ¶óÀ̺귯¸®¸¦ ÀνºÅç ½Ã۱â À§Çؼ´Â ´ç½ÅÀÌ ²À °®°í ÀÖ¾î ¾ß¸¸ Çϰí stripÀÌ ¾øÀ½Àº °¡¸Á¾ø´Â ÀÏÀ̹ǷΠÀÌ ¸ÅÅ©·Î °ªÀ» Ç×»ó 1·Î½á Á¤ÀÇÇÑ´Ù.
27.3 Áö¿øµÇ´Â POSIXÀÇ ¹öÁ¯Àº?
¸ÅÅ©·Î : long int __POSIX__VERSION
ÀÌ »ó¼ö´Â POSIX.1 Ç¥ÁØÀÇ ¹öÀüÀ» ³ªÅ¸³½´Ù. 1990 POSIX.1Àº 199009LÀÇ °ªÀÌ´Ù. _POSIX_VERSIONÀº Ç×»ó ¾î´À POSIX ½Ã½ºÅÛ¿¡¼µçÁö `unistd.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù.
»ç¿ë¹ý ³ëÆ®: `unistd.h' ¸¦ ÀÎŬ·çµå ÇÔÀ¸·Î½á ½Ã½ºÅÛÀÌ POSIX¸¦ Áö¿øÇÏ´ÂÁöÀÇ ¿©ºÎ¸¦ Å×½ºÆ®ÇÏÁö ¸»°í _POSIX_VERSIONÀÌ Á¤ÀǵǾú´ÂÁö¸¦ ÅëÇØ¼ ±× ¿©ºÎ¸¦ Å×½ºÆ®Ç϶ó. ºñ-POSIX ½Ã½ºÅÛÀº, `unistd.h'°¡ ¾ø±â ¶§¹®¿¡ ¾Æ¸¶µµ ½ÇÆÐÇÒ °ÍÀÌ´Ù. ÄÄÆÄÀÏ ½Ã°£¿¡ POSIX°¡ Áö¿øµÇ´ÂÁö, ¶Ç´Â `unistd.h'°¡ Á¸ÀçÇÏ´ÂÁöÀÇ ¿©ºÎ¸¦ ´ç½ÅÀÌ ¾Ë ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø´Ù.
GNU C ÄÄÆÄÀÏ·¯´Â ¸¸ÀÏ ¸ñÇ¥ ½Ã½ºÅÛÀÌ POSIX ½Ã½ºÅÛÀ̶ó¸é ½Éº¼ __POSIX__¸¦ ¹Ì¸®Á¤ÀÇÇÑ´Ù. Á¤ ÀÇµÈ __POSIX__¸¦ Å×½ºÆ® ÇØ¼, ´ç½ÅÀÌ POSIX ½Ã½ºÅÛ»ó¿¡¼ »ç¿ëÇÏÁö ¾Ê´Â °ÍÀ» Á¦°øÇß´ÂÁö, ±×·¯ ÇѰÍÀ» ½Å·Ú¼ºÀÖ°Ô °ËÃâÇÒ °ÍÀÌ´Ù.
¸ÅÅ©·Î : long int __POSIX2__C__VERSION
ÀÌ »ó¼ö´Â ¶óÀ̺귯¸®¿Í ½Ã½ºÅÛ Ä¿³ÎÀÌ Á¦°øÇÏ´Â POSIX.2 Ç¥ÁØÀÇ ¹öÀüÀ» ³ªÅ¸³½´Ù. ¿ì¸®´Â POSIX.2 Ç¥ÁØÀÇ Ã¹ ¹øÂ° ¹öÀüÀÌ ¾î¶² °ªÀÎÁö ¾ËÁö¸øÇϱ⠶§¹®¿¡ ±× °ªÀº ±× Ç¥ÁØÀÌ °ø½ÄÀûÀ¸·Î äÅÃµÈ ¿¬µµ ¿Í ´ÞÀ» ±âÁØÀ¸·Î ÇÑ´Ù.
ÀÌ ½Éº¼ÀÇ °ªÀº ½Ã½ºÅÛ¿¡ ÀνºÅçµÈ À¯Æ¿¸®Æ¼¿¡ ´ëÇÑ °ÍÀº ¾Æ¹«°Íµµ ¸»ÇÏÁö ¾Ê´Â´Ù.
»ç¿ë¹ý ³ëÆ®: ´ç½ÅÀº POSIX.1 ½Ã½ºÅÛ ¶óÀ̺귯¸®°¡ POSIX.2¸¦ Áö¿øÇÏ´ÂÁöÀÇ ¿©ºÎ¸¦ ¾Ë±â À§Çؼ ÀÌ ¸ÅÅ©·Î¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¾î¶² POSIX.1 ½Ã½ºÅÛÀÌ `unistd.h'¸¦ °®°íÀÖ´Ù¸é, ±× ÆÄÀÏÀ» ÀÎŬ·çµå Çϰí Á¤ÀÇµÈ (_POSIX2_C_VERSION) À» Å×½ºÆ®Ç϶ó.
27.4 sysconf »ç¿ëÇϱâ.
´ç½ÅÀÇ ½Ã½ºÅÛÀÌ ½Ã½ºÅÛ Á¦ÇÑÀ» ±¸¼ºÇÒ ¼ö ÀÖÀ» ¶§, ´ç½ÅÀº ¾î´À ƯÁ¤ÇÑ ±â°è¿¡ Àû¿ëµÇ´Â ±× °ªÀ» ¾Ë¾Æ³»±â À§Çؼ sysconf ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±× ÇÔ¼ö¿Í ¿¬°üµÈ ÆÄ¶ó¹ÌÅÍ »ó¼öµéÀº Çì´õÆÄÀÏ `unistd.h' ¿¡ ¼±¾ðµÇ¾î ÀÖ´Ù.
27.4.1 sysconfÀÇ Á¤ÀÇ
ÇÔ¼ö : long int sysconf (int parameter)
ÀÌ ÇÔ¼ö´Â ½ÇÇà½Ã°£ ½Ã½ºÅÛ ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ¼ ÁúÀÇÇϱâ À§Çؼ »ç¿ëµÈ´Ù. ±× parameter Àμö´Â ¹Ø ¿¡ ¼³¸íµÈ ½Éº¼µé `_SC_'Áß Çϳª°¡ µÇ¾î¾ß ÇÑ´Ù. sysconfÀÇ º¸ÅëÀÇ ¸®ÅϰªÀº ´ç½ÅÀÌ ¿äûÇÑ °ªÀÌ°í ¸¸ÀÏ ±× Á¦ÇÑÀÌ Çã¿ëµÇÁö ¾Ê°Å³ª ¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ì¿¡´Â -1ÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù. ´ÙÀ½ÀÇ errno´Â ÀÌ ÇÔ¼ö¸¦ À§ÇØ Á¤ÀÇµÈ ¿¡·¯»óȲÀÌ´Ù.
EINVAL parameterÀÇ °ªÀÌ À¯¿ëÇÏÁö ¾Ê´Ù.
27.4.2 sysconfÀÇ parameter¸¦ À§ÇÑ »ó¼öµé.
´ÙÀ½Àº sysconf¿¡ parameter Àμö·Î½á »ç¿ëÇϱâ À§ÇÑ ±âÈ£»ó¼öµéÀÌ´Ù. ±× °ªµéÀº ¸ðµÎ Á¤¼ö »ó¼öµé ÀÌ´Ù (Á»´õ Ưº°ÇÏ°Ô ¸»Çϸé, ¿°ÅÇü °ªÀÌ´Ù.)
_SC_ARG_MAX
ARG_MAX ¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù.
_SC_CHILD_MAX
CHILD_MAX ¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù.
_SC_OPEN_MAX
OPEN_MAX¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù.
_SC_STREAM_MAX
STREAM_MAX¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù.
_SC_TZNAME_MAX
TZNAME_MAX¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù.
_SC_NGROUPS_MAX
NGROUPS_MAX ¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù.
_SC_JOB_CONTROL
_POSIX_JOB_CONTROL¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù.
_SC_SAVED_IDS
_POSIX_SAVED_IDS ¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù.
_SC_VERSION
_POSIX_VERSION¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù.
_SC_CLK_TCK
CLOCKS_PER_SEC¿¡ ÇØ´çÇÏ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ ÁúÀÇÇÑ´Ù; 17.1.1 [Basic CPU Time] 233 ÆäÀÌÁö ÂüÁ¶.
_SC_2_C_DEV
POSIX.2 C ÄÄÆÄÀÏ·¯ ¸í·É, c89¸¦ ½Ã½ºÅÛÀÌ °¡Á³´ÂÁö¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_SC_2_FORT_DEV
½Ã½ºÅÛÀÌ POSIX.2 Æ÷Æ®¶õ ÄÄÆÄÀÏ·¯ ¸í·É, fort77À» °¡Á³´ÂÁö ¿©ºÎ¸¦ ÁúÀÇÇÑ´Ù.
_SC_2_FORT_RUN
½Ã½ºÅÛÀÌ Æ÷Æ®¶õ ij¸®Áö Á¦¾î¸¦ ÇØ¼®Çϱâ À§ÇÑ POSIX.2 asa ¸í·ÉÀ» °¡Á³´ÂÁö ¿©ºÎ¸¦ ÁúÀÇÇÑ´Ù.
_SC_2_LOCALEDEF
½Ã½ºÅÛÀÌ POSIX.2 localedef ¸í·ÉÀ» °¡Á³´ÂÁö ÁúÀÇÇÑ´Ù.
_SC_2_SW_DEV
½Ã½ºÅÛÀÌ POSIX.2 ¸í·Éµé ar, make ±×¸®°í strip¸¦ °¡Á³´ÂÁö ÁúÀÇÇÑ´Ù.
_SC_BC_BASE_MAX
bc À¯Æ¿¸®Æ¼¿¡ ÀÖ´Â obaseÀÇ ÃÖ´ë°ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_SC_BC_DIM_MAX
bc À¯Æ¿¸®Æ¼¿¡ ÀÖ´Â ¹è¿ÀÇ ÃÖ´ë Å©±â¿¡ ´ëÇØ¼ÁúÀÇÇÑ´Ù.
_SC_BC_SCALE_MAX
bc À¯Æ¿¸®Æ¼¿¡ ÀÖ´Â ½ºÄÉÀÏÀÇ ÃÖ´ë °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_SC_BC_STRING_MAX
bc À¯Æ¿¸®Æ¼¿¡ ÀÖ´Â ¹®ÀÚ¿ »ó¼öÀÇ ÃÖ´ëÅ©±â¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_SC_COLL_WEIGHTS_MAX
Áö¿ª(locale)¿¡¼ ´ëÁ¶¹®ÀÚ¿À» Á¤ÀÇÇϴµ¥ »ç¿ëµÉ¼ö ÀÖ´Â °¡ÁßÄ¡ÀÇ ÃÖ´ë¼ö¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_SC_EXPR_NEST_MAX
expr À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÒ¶§ °ýÈ£¾È¿¡ ÃæÃ¸µÈ Ç¥Çö½ÄÀÇ ÃÖ´ë°¹¼ö¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_SC_LINE_MAX
POSIX.2 ÅØ½ºÆ® À¯Æ¿¸®Æ¼µéÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Â ÅØ½ºÆ® ¶óÀÎÀÇ ÃÖ´ëÅ©±â¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_SC_EQUIV_CLASS_MAX
Áö¿ª(locale) Á¤ÀÇ¿¡ ÀÖ´Â LC_COLLATE ¹üÁÖ `order'¿¡ ¹èÁ¤µÉ ¼ö ÀÖ´Â °¡ÁßÄ¡ÀÇ ÃÖ´ë¼ö¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù. GNU C ¶óÀ̺귯¸®´Â °ð Áö¿ª(locale) Á¤ÀǸ¦ Áö¿øÇÏÁö ¾Ê´Â´Ù.
_SC_VERSION
¶óÀ̺귯¸®¿Í Ä¿³ÎÀÌ Áö¿øÇÏ´Â POSIX.1ÀÇ ¹öÀü ¹øÈ£¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_SC_2_VERSION
½Ã½ºÅÛ À¯Æ¿¸®Æ¼µéÀÌ Áö¿øÇÏ´Â POSIX.2 ÀÇ ¹öÀü¹øÈ£¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_SC_PAGESIZE
±â°èÀÇ °¡»óÀûÀÎ ¸Þ¸ð¸® ÆäÀÌÁö Å©±â¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù. getpagesizeµµ °°Àº°ªÀ» ¸®ÅÏÇÑ´Ù.
27.4.3 sysconfÀÇ ¿¹Á¦.
¿ì¸®´Â ÀÏ´Ü ´ç½ÅÀÌ °ü½ÉÀ» °®°íÀÖ´Â ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇÑ ¸ÅÅ©·Î Á¤Àǰ¡ ÀÖ´ÂÁöÀÇ ¿©ºÎ¸¦ Å×½ºÆ® ÇØ º¸°í ¾ø´Ù¸é ±×´ÙÀ½ sysconf¸¦ »ç¿ëÇϱ⸦ ±ÇÀåÇÑ´Ù. ¿¹¸¦µé¾î, ÀÛ¾÷Á¦¾î°¡ Áö¿øµÇ´ÂÁöÀÇ ¿©ºÎ¸¦ ¾î ¶»°Ô Å×½ºÆ®ÇÏ´ÂÁö¿¡ ´ëÇÑ ¿¹Á¦°¡ ´ÙÀ½¿¡ ÀÖ´Ù:
int
have_job_control (void)
{
#ifdef _POSIX_JOB_CONTROL
return 1;
#else
int value = sysconf (_SC_JOB_CONTROL);
if (value < 0)
/* ¸¸ÀÏ ½Ã½ºÅÛÀÌ °íÁ¤µÇ¾î ÀÖ´Ù¸é, ½Ãµµ¸¦ °è¼ÓÇÒ ¼ö ¾ø´Ù. */
fatal (strerror (errno));
return value;
#endif
}
´ÙÀ½Àº ¼öÄ¡Àû Á¦ÇÑÀÇ °ªÀ» ¾ò±â À§ÇÑ ¹æ¹ýÀÌ´Ù.
int
get_child_max ()
{
#ifdef CHILD_MAX
return CHILD_MAX;
#else
int value = sysconf (_SC_CHILD_MAX);
if (value < 0)
fatal (strerror (errno));
return value;
#endif
}
27.5 ÃѰýÀûÀÎ ¿ë·® Á¦ÇѵéÀ» À§ÇÑ ÃÖ¼Ò°ª.
´ÙÀ½Àº ½Ã½ºÅÛ Á¦ÇÑ ÆÄ¶ó¹ÌÅ͵éÀ» À§ÇÑ POSIX ÃÖ¼Ò ÇÏÇâ ÇѰèµéÀ» À§ÇÑ À̸§µéÀÌ´Ù. ±× °ªµéÀÇ À¯ Àǰª(significance)Àº ´ç½ÅÀÌ »ç¿ëÇϰí ÀÖ´Â ½Ã½ºÅÛÀÌ ¹«¾ùÀ̵çÁö »ó°ü¾øÀÌ ±× Á¦ÇÑÀ» ¾ÈÀüÇÏ°Ô »ç¿ë ÇÒ ¼ö ÀÖ´Â °ªµéÀÌ´Ù.
_POSIX_ARG_MAX
ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº exec ÇÔ¼ö¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â argv¿Í ȯ°æº¯¼öµéÀÇ °áÇÕµÈ ÃÖ´ë±æÀ̸¦ À§ÇÑ POSIX¿¡ ÀÇÇØ Çã¿ëµÇ°í ÀÖ´Â ´ëºÎºÐÀÇ Á¦ÇѰªÀÌ´Ù. ±× °ªÀº 4096ÀÌ´Ù.
_POSIX_CHILD_MAX
ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº ½ÇÁ¦ »ç¿ëÀÚ ID¸¶´Ù µ¿½Ã¿¡ °¡Áú ¼ö ÀÖ´Â ÇÁ·Î¼¼½ºµéÀÇ ÃÖ°³ °³¼ö·Î½á POSIX¿¡ ÀÇÇØ Çã¿ëµÇ°í ÀÖ´Â ´ëºÎºÐÀÇ Á¦ÇѰªÀÌ´Ù. ±× °ªÀº 6ÀÌ´Ù.
_POSIX_NGROUPS_MAX
ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº ÇÁ·Î¼¼½º´ç °¡Áú ¼ö ÀÖ´Â ºÎ°¡ÀûÀÎ ±×·ì IDµéÀÇ ÃÖ´ë °³¼ö·Î½á POSIX¿¡ ÀÇÇØ ´ë ºÎºÐ Çã¿ëµÇ°í ÀÖ´Â Á¦ÇѰª. ±× °ªÀº 0ÀÌ´Ù.
_POSIX_OPEN_MAX
ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº ´ÜÀÏÇÑ ÇÁ·Î¼¼½º¿¡¼ µ¿½Ã¿¡ °³¹æÇÒ ¼ö ÀÖ´Â ÆÄÀϵéÀÇ ÃÖ´ë°¹¼ö·Î½á POSIX¿¡ ÀÇ ÇØ ´ëºÎºÐ Çã¿ëµÇ°í ÀÖ´Â Á¦ÇѰª. ±× °ªÀº 16ÀÌ´Ù.
_POSIX_SSIZE_MAX
ssize_t ÀÇ ¿ÀºêÁ§Æ®¿¡ ÀúÀåµÉ ¼ö ÀÖ´Â ÃÖ´ë°ªÀ¸·Î½á POSIX¿¡ ÀÇÇØ ´ëºÎºÐ Çã¿ëµÇ°í ÀÖ´Â Á¦ÇѰª. ±× °ªÀº 32767ÀÌ´Ù.
_POSIX_STREAM_MAX
ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº ´ÜÀÏÇÑ ÇÁ·Î¼¼½º°¡ µ¿½Ã¿¡ °³¹æÇÒ ¼ö ÀÖ´Â ½ºÆ®¸²ÀÇ ÃÖ´ë°¹¼ö·Î½á POSIX¿¡ ÀÇÇØ ´ëºÎºÐ Çã¿ëµÇ°í ÀÖ´Â Á¦ÇѰª. ±× °ªÀº 8ÀÌ´Ù.
_POSIX_TZNAME_MAX
ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº ½Ã°£´ëÀÇ ÃÖ´ë ±æÀ̷νá POSIX¿¡ ÀÇÇØ Çã¿ëµÇ°í ÀÖ´Â ´ëºÎºÐÀÇ Á¦ÇѰª. ±× °ªÀº 3ÀÌ´Ù.
_POSIX2_RE_DUP_MAX
ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº Á¤±ÔÇ¥Çö½ÄÀÇ `\{min,max\}'¿¡¼ »ç¿ëµÇ°í ÀÖ´Â ¼ýÀڷνá POSIX¿¡ ÀÇÇØ Çã¿ëµÇ°í ÀÖ´Â ´ëºÎºÐÀÇ Á¦ÇѰª. ±× °ªÀº 255ÀÌ´Ù.
27.6 ÆÄÀÏ ½Ã½ºÅÛ ¿ë·®ÀÇ Á¦ÇÑ.
POSIX.1 Ç¥ÁØÀº ÆÄÀÏ ½Ã½ºÅÛÀÇ Á¦ÇѵéÀ» ³ªÅ¸³»´Â ÆÄ¶ó¹ÌÅ͵éÀÇ °³¼ö¸¦ ÇÑÁ¤Çϰí ÀÖ´Ù. À̰ÍÀº º¸ ÅëÀÇ °æ¿ì´Â ¾Æ´ÏÁö¸¸, ÇÑ ÆÄ¶ó¹ÌÅÍ¿¡ ´ÜÀÏÇÑ °ªÀ» °®´Â °íÁ¤µÈ ½Ã½ºÅÛ¿¡¼ °¡´ÉÇÑ °ÍÀÌ´Ù. ´ëºÎºÐ ÀÇ ½Ã½ºÅÛ¿¡¼, ´Ù¸¥ ÃÖ´ë Á¦ÇÑÀ» °®´Â ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛ ( ±×¸®°í, ´Ù¸¥ ÆÄ¶ó¹ÌÅ͵éÀ̳ª, ½ÉÁö¾î ´Ù ¸¥ ÆÄÀϵé )ÀÌ °¡´ÉÇÏ´Ù. ¿¹¸¦µé¾î, ´Ù¸¥ ±â°èµé·ÎºÎÅÍ ÆÄÀÏ ½Ã½ºÅÛµéÀÇ ¾î¶² °ÍÀ» ¸¶¿îÆ®(mount) Çϱâ À§Çؼ NFS¸¦ »ç¿ëÇÑ´Ù¸é ¸Å¿ì °¡´É¼ºÀÖ´ÂÀÏÀÌ´Ù.
´ÙÀ½ ¸ÅÅ©·Îµé °¢°¢Àº ¸¸ÀÏ ±× ÆÄ¶ó¹ÌÅ͵éÀÌ °íÁ¤µÈ °ªÀ» °®´Â ½Ã½ºÅÛÀ̶ó¸é `limits.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù. ¸¸ÀÏ ±× ½Ã½ºÅÛÀÌ ´Ù¸¥ Á¦ÇѵéÀ» °®´Â ÆÄÀϽýºÅÛÀ̳ª ÆÄÀϵéÀ» Çã¿ëÇÑ´Ù¸é, ±× ¸ÅÅ©·Î´Â Á¤ ÀǵÇÁö ¾Ê´Â´Ù; ƯÁ¤ÇÑ ÆÄÀÏ¿¡ Àû¿ëµÇ´Â Á¦ÇÑÀ» ¾Ë¾Æ´Ï·Á¸é pathconf ³ª fpathconf¸¦ »ç¿ëÇ϶ó. 27.9 Àý [Patcconf] 377 ÆäÀÌÁö ÂüÁ¶.
°¢ ÆÄ¶ó¹ÌÅ͵éÀº ´Ù¸¥ ¸ÅÅ©·ÎµéÀ» °®´Âµ¥, ±× ¸ÅÅ©·Î´Â POSIX ½Ã½ºÅÛ¿¡¼ °®µµ·Ï Çã¿ëµÇ´Â Á¦ÇÑÀÇ ÃÖ¼Ò°ªÀ» °®´Â `_POSIX'·Î ½ÃÀ۵Ǵ À̸§ÀÌ´Ù. 27.8Àý [File Minimums] 376 ÆäÀÌÁö ÂüÁ¶.
¸ÅÅ©·Î : int LINK__MAX
ºÒº¯ÀÇ ½Ã½ºÅÛÀº ÁÖ¾îÁø ÆÄÀÏÀ» À§ÇÑ À̸§µéÀÇ °³¼ö¸¦ Á¦ÇÑÇÑ´Ù. 9.3Àý [Hard Links] 127 ÆäÀÌÁö Âü Á¶.
¸ÅÅ©·Î : int MAX__CANON
ºÒº¯ÀÇ ½Ã½ºÅÛÀº ÀÔ·Â ÆíÁýÀÌ °¡´ÉÇÒ ¶§ ÇÑ ¶óÀÎÀÇ ÅØ½ºÆ®ÀÇ ¾çÀ» Á¦ÇÑÇÑ´Ù. 12.3Àý [Canonical or Not] 186 ÆäÀÌÁö ÂüÁ¶.
¸ÅÅ©·Î : int MAX__INPUT
ºÒº¯ÀÇ ½Ã½ºÅÛÀº ÀÔ·Â(input)À¸½á ¹Ì¸® ÀÔ·Â(typed)µÈ ¹®ÀÚµéÀÇ ÃÑ °³¼ö¸¦ Á¦ÇÑÇÑ´Ù. 12.2 [I/O Queses] 185 ÆäÀÌÁö ÂüÁ¶.
¸ÅÅ©·Î : int NAME__MAX
ºÒº¯ÀÇ ½Ã½ºÅÛÀº ÆÄÀÏ À̸§ ±¸¼º¿ä¼ÒÀÇ ±æÀÌ¿¡ ´ëÇØ¼ Á¦ÇÑÇÑ´Ù.
¸ÅÅ©·Î : int PATH__MAX
ºÒº¯ÀÇ ½Ã½ºÅÛÀº Àüü ÆÄÀÏÀ̸§ÀÇ ±æÀÌ¿¡ ´ëÇØ¼ Á¦ÇÑÇÑ´Ù (±×°ÍÀº open°ú °°Àº ½Ã½ºÅÛ È£Ãâ¿¡ ÁÖ ¾îÁø ÀμöÀÌ´Ù).
¸ÅÅ©·Î : int PIPE__BUF
ºÒº¯ÀÇ ½Ã½ºÅÛÀº ÆÄÀÌÇÁ¿¡ ÀÚµ¿ÀûÀ¸·Î ¾²¿©Áú ¼ö ÀÖ´Â ¹ÙÀÌÆ®ÀÇ °³¼ö¿¡ ´ëÇØ¼ Á¦ÇÑÇÑ´Ù. ¸¸ÀÏ ´Ù Áß ÇÁ·Î¼¼½º°¡ µ¿½Ã¿¡ °°Àº °°Àº ÆÄÀÌÇÁ¿¡ ±â·ÏÇϰí ÀÖ´Ù¸é, ´Ù¸¥ ÇÁ·Î¼¼½ºµé·ÎºÎÅÍÀÇ Ãâ·ÂÀº ÀÌ Å© ±âÀÇ Ã»Å©(chunks) ¿¡ »ðÀ﵃ °ÍÀÌ´Ù. 10Àå [Pipes and FIFOs] 145 ÆäÀÌÁö ÂüÁ¶.
´ÙÀ½Àº °°Àº ¿ªÇÒÀ» ÇÏ´Â ¸ÅÅ©·ÎÀÇ ´Ù¸¥ À̸§ÀÌ´Ù.
¸ÅÅ©·Î : int MAXNAMLEN
À̰ÍÀº NAME_MAX ¸¦ À§ÇÑ BSD À̸§ÀÌ´Ù. `dirent.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù.
¸ÅÅ©·Î : int FILENAME__MAX
ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº ÆÄÀÏ À̸§ ¹®ÀÚ¿ÀÇ ÃÖ´ë ±æÀ̸¦ ³ªÅ¸³»´Â Á¤¼ö »ó¼ö Ç¥ÇöÀÌ´Ù. À̰ÍÀº `stdio.h' ¿¡ Á¤ÀǵǾî ÀÖ´Ù. PATH_MAX¿Í ´Þ¸®, ÀÌ ¸ÅÅ©·Î´Â ½ÇÁ¦·Î Á¦ÇÑµÈ °ªÀÌ ¾ø´õ¶óµµ Á¤ÀǵǾî ÀÖ´Ù. ±× °æ¿ì, ±× °ªÀº ÀüÇüÀûÀ¸·Î ¸Å¿ì Å«°ªÀ¸·Î Á¸ÀçÇÑ´Ù. GNU ½Ã½ºÅÛ¿¡¼´Â Ç×»ó ±× °æ¿ìÀÌ´Ù.
»ç¿ë¹ý ³ëÆ®: ÆÄÀÏ À̸§À» ÀúÀåÇϱâ À§Çؼ ¹è¿ÀÇ Å©±â¸¦ FILENAME_MAX¸¦ »ç¿ëÇÏÁö ¸»¾Æ¶ó! ´ç½Å ÀÌ ±×·¸°Ô ¹è¿À» Å©±â ¸¸µå´Â °ÍÀº °¡´ÉÇÏÁö ¾Ê´Ù! ´ë½Å¿¡ µ¿Àû ÇÒ´çÀ» »ç¿ëÇ϶ó( 3Àå [Memory Allocation] 21 ÆäÀÌÁö ÂüÁ¶.)
27.7 ÆÄÀÏ¿¡ Áö¿øµÇ´Â ¼±ÅÃÀû ±â´Éµé.
POSIX´Â ½Ã½ºÅÛ¿¡¼ ÆÄÀϵéÀ» ¿î¿µÇϱâ À§Çؼ È£ÃâÇÏ´Â ½Ã½ºÅÛ-¼³Á¤ ¿É¼ÇµéÀ» Á¤ÀÇÇÑ´Ù. ¾î¶² ½Ã½ºÅÛµéÀº ±× ¿É¼ÇµéÀ» Áö¿øÇÏ°í ´Ù¸¥ °ÍÀº Áö¿øÇÏÁö ¾Ê´Â´Ù. ±× ¿É¼ÇµéÀÌ ¶óÀ̺귯¸®°¡ ¾Æ´Ï¶ó Ä¿³Î¿¡¼ Á¦°øµÇ±â ¶§¹®¿¡, GNU C ¶óÀ̺귯¸®¸¦ »ç¿ëÇØ¼ »ç¿ëÇØ¼ ±× ±â´ÉµÑ Áß ¾î´À°ÍÀÌ Áö¿øµÇ ´ÂÁö °£´ÜÈ÷ È®ÀÎÇÒ ¼ö ¾ø´Ù. ±×µéÀº ÆÄÀÏ ½Ã½ºÅÛ°ú ±â°è »çÀÌ¿¡¼ ±²ÀåÈ÷ ´Ù¾çÇÒ ¼ö ÀÖ´Ù.
ÀÌ ÀýÀº ´ç½ÅÀÇ ±â°è°¡ Ưº°ÇÑ ¿É¼ÇÀ» Áö¿øÇÏ´ÂÁö¿¡ ´ëÇÑ ¿©ºÎ¸¦ Å×½ºÆ® ÇÒ ¼ö ÀÖ´Â ¸ÅÅ©·Î¸¦ ¼³ ¸íÇÑ´Ù. ¸¸ÀÏ ÁÖ¾îÁø ¸ÅÅ©·Î°¡ `unistd.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù¸é, ±× °ªÀ» ÅëÇØ¼ ÇØ´çÇÏ´Â ±â´ÉµéÀ» Á¦ °øÇÏ´ÂÁö¿¡ ´ëÇØ¼ ¾Ë ¼ö ÀÖ´Ù. (-1ÀÇ °ªÀº ¾øÀ½À» ÁöÀûÇϰí; ±×¿Ü ´Ù¸¥°ªÀº ÀÖÀ½À» ÁöÀûÇÑ´Ù.) ¸¸ ÀÏ ±× ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÁö¾ÊÀ¸¸é, ±×°ÍÀº Ưº°ÇÑ ÆÄÀϵéÀÌ ±× ±â´ÉÀ» Áö¿øÇÒ ¼öµµ ÀÖ°í Áö¿øÇÏ Áö ¾ÊÀ» ¼öµµ ÀÖÀ½À» ÀǹÌÇÑ´Ù.
GNU C ¶óÀ̺귯¸®¸¦ Áö¿øÇÏ´Â ¸ðµç ±â°è¿¡¼´Â ¶ÇÇÑ NFS¸¦ Áö¿øÇϱ⠶§¹®¿¡, ¸ðµç ÆÄÀÏ ½Ã½ºÅÛ µéÀÌ _POSIX_CHOWN_RESTRICTED ¿Í _POSIX_NO_TRUNC ±â´ÉµéÀ» Áö¿øÇÏ´ÂÁö¿¡ ´ëÇØ¼ ÀÏ ¹ÝÀûÀÎ ±¸¹®À» ÀüÇô ¸¸µé ¼ö ¾ø´Ù. ±×·¡¼ GNU C ¶óÀ̺귯¸®¿¡¼ ±× ¸ÅÅ©·ÎµéÀº °áÄÚ Á¤ÀǵÇ
Áö ¾Ê´Â´Ù.
¸ÅÅ©·Î : int __POSIX__CHOWN__RESTRICTED
ÀÌ ¿É¼ÇÀÌ °¡´ÉÇÏ´Ù¸é, chown ÇÔ¼ö´Â Ư±ÇÀÌ ¾ø´Â ÇÁ·Î¼¼½ºµéÀÌ ±× ÇÁ·Î¼¼½ºÀÇ À¯È¿ »ç¿ëÀÚ ID³ª ºÎ°¡ÀûÀÎ ±×·ì IDÁßÀÇ Çϳª·Î ÆÄÀÏÀÇ ±×·ì ¼ÒÀ¯ÀÚ¸¦ º¯°æÇÏ´Â °Í¸¸À» Çã¿ëÇϵµ·Ï Á¦ÇÑÇÑ´Ù. 9.8.4Àý [File Owner] 135 ÆäÀÌÁö ÂüÁ¶.
¸ÅÅ©·Î : int __POSIX__NO__TRUNC
¸¸ÀÏ ÀÌ ¿É¼ÇÀÌ È¿°ú°¡ ÀÖ´Ù¸é, NAME_MAX º¸´Ù ±ä ÆÄÀÏ À̸§ ±¸¼º¿ä¼ÒµéÀº ENAMETOOLONG ¿¡·¯¸¦ ¹ß»ýÇÑ´Ù. ±×·¸Áö¾Ê´Ù¸é, ³Ê¹« ±ä ÆÄÀÏÀ̸§ ±¸¼º¿ä¼Ò´Â À߸®°í ¸¸´Ù.
¸ÅÅ©·Î : unsigned char __POSIX__VDISABLE
ÀÌ ¿É¼ÇÀº Å͹̳¯ µð¹ÙÀ̽ºÀÎ ÆÄÀÏ¿¡¸¸ ¿ÀÁ÷ À¯È¿ÇÏ´Ù. ¸¸ÀÏ ÀÌ ¿É¼ÇÀÌ È¿·ÂÀ» °®´Â´Ù¸é, ƯÁ¤ÇÑ Á¦ ¾î¹®ÀÚ¸¦ ó¸®ÇÒ ¶§ °³º°ÀûÀ¸·Î È¿·ÂÀÌ ¾ø°Ô ÇÒ ¼ö ÀÖ´Ù. 12.4.9Àý [Special Characters] 195 ÆäÀÌÁö ÂüÁ¶.
¸¸ÀÏ ±× ¸ÅÅ©·ÎµéÁß Çϳª°¡ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù¸é, ±×°ÍÀº ±× ¿É¼ÇÀÌ ¾î¶² ÆÄÀϵ鿡´Â È¿°ú°¡ ÀÖ°í ¾î¶² ÆÄÀϵ鿡´Â È¿°ú°¡ ¾øÀ½À» ÀǹÌÇÑ´Ù. ƯÁ¤ÇÑ ÆÄÀÏ¿¡ ´ëÇØ¼ ¹®ÀÇÇÏ·Á¸é, pathconf ¶Ç´Â fpathconf¸¦ È£ÃâÇ϶ó. 27.9Àý [Pathconf] 377 ÆäÀÌÁö ÂüÁ¶.
27.8 ÆÄÀÏ ½Ã½ºÅÛ Á¦ÇѵéÀ» À§ÇÑ ÃÖ¼Ò °ªµé.
´ÙÀ½Àº À§¿¡ ¼³¸íµÈ ÆÄ¶ó¹ÌÅ͵鿡 ´ëÇÑ POSIX ÃÖ¼Ò ÇÏÇâ °æ°èµéÀ» ³ªÅ¸³»´Â À̸§ÀÌ´Ù. ±× °ªµéÀº ´ç½ÅÀÌ »ç¿ëÇϰí Àִ ƯÁ¤ÇÑ ½Ã½ºÅÛ¿¡ »ó°ü¾øÀÌ Á¦ÇѵéÀ» ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.
_POSIX_LINK_MAX
POSIX¿¡ ÀÇÇØ ´ëºÎºÐ Çã°¡µÇ°í ÀÖ´Â Á¦ÇѰªÀ¸·Î ÆÄÀÏÀÇ ¸µÅ© °³¼öÀÇ ÃÖ´ë°ªÀÌ´Ù. ÀÌ »ó¼ö°ªÀº 8ÀÌ ´Ù;±×·¡¼, ´ç½ÅÀº ½Ã½ºÅÛ Á¦ÇÑÀ» ½ÃÇèÇÏÁö ¾Ê°íµµ ÇÑ °³ÀÇ ÆÄÀÏÀ» À§Çؼ Ç×»ó 8°³ÀÇ À̸§À» ¸¸µé ¼ö ÀÖ´Ù.
_POSIX_MAX_CANON
POSIX¿¡ ÀÇÇØ ´ëºÎºÐ Çã°¡µÇ°í ÀÖ´Â Á¦ÇѰªÀ¸·Î, Å͹̳Πµð¹ÙÀ̽º·ÎºÎÅÍ ÇÑ °³ÀÇ Á¤±Ô ÀÔ·Â ¶óÀο¡ ¼ ÃÖ´ëÇÑ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Â ¹ÙÀÌÆ®ÀÇ °³¼öÀÌ´Ù. ÀÌ »ó¼öÀÇ °ªÀº 255.
_POSIX_MAX_INPUT
POSIX¿¡ ÀÇÇØ ´ëºÎºÐ Çã°¡µÇ°í ÀÖ´Â Á¦ÇѰªÀ¸·Î, Å͹̳Πµð¹ÙÀ̽º ÀԷ ť(¶Ç´Â ¼±ÇàÀÔ·Â ¹öÆÛ)¿¡ µé¾î°¥ ¼ö ÀÖ´Â ÃÖ´ë ¹ÙÀÌÆ®ÀÇ °³¼öÀÌ´Ù 12.4.4Àý [Input Modes] 189 ÂüÁ¶. ÀÌ »ó¼öÀÇ °ªÀº 255ÀÌ ´Ù.
_POSIX_NAME_MAX
POSIX¿¡ ÀÇÇØ ´ëºÎºÐ Çã°¡µÇ°í ÀÖ´Â Á¦ÇѰªÀ¸·Î, ÆÄÀÏ À̸§ ±¸¼º¿¡ ÀÖ´Â ¹ÙÀÌÆ®ÀÇ ÃÖ´ë °³¼öÀÌ´Ù. ÀÌ »ó¼öÀÇ °ªÀº 14ÀÌ´Ù.
_POSIX_PATH_MAX
POSIX¿¡ ÀÇÇØ ´ëºÎºÐ Çã°¡µÇ°í ÀÖ´Â Á¦ÇѰªÀ¸·Î ÆÄÀÏ À̸§ÀÇ ÃÖ´ë ¹ÙÀÌÆ® °³¼öÀÌ´Ù. ÀÌ »ó¼öÀÇ °ª Àº 255ÀÌ´Ù.
_POSIX_PIPE_BUF
POSIX¿¡ ÀÇÇØ ´ëºÎºÐ Á¦Çѵǰí ÀÖ´Â Á¦ÇѰªÀ¸·Î, ÇÑ ÆÄÀÌÇÁ¿¡ ÀÚµ¿ÀûÀ¸·Î ¾º¿©Áú ¼ö ÀÖ´Â ¹ÙÀÌÆ®ÀÇ ÃÖ´ë °³¼öÀÌ´Ù. ÀÌ »ó¼öÀÇ °ªÀº 512ÀÌ´Ù.
27.9 pathconf »ç¿ëÇϱâ.
´ç½ÅÀÇ ±â°è°¡ ÇÑ °³ÀÇ ÆÄÀÏ ½Ã½ºÅÛ ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇØ¼ ¿©·¯°³ÀÇ °ªÀ» °®´Â ´Ù¸¥ ÆÄÀϵéÀ» Çã¿ëÇÒ ¶§, ´ç½ÅÀÌ ¾î´À ƯÁ¤ÇÑ ÆÄÀÏ¿¡ Àû¿ëµÇ´Â °ªÀ» ã¾Æ³»±â À§Çؼ´Â ÀÌ Àý¿¡ ¼³¸íµÈ ÆÄÀϵéÀ» »ç¿ëÇØ ¾ß¸¸ ÇÑ´Ù. ±× ÇÔ¼öµé°ú ±×¿Í ¿¬°üµÈ ÆÄ¶ó¹ÌÅÍ Àμö¸¦ À§ÇÑ »ó¼öµéÀº Çì´õÆÄÀÏ `unistd.h'¿¡ ¼±¾ðµÇ ¾î ÀÖ´Ù.
ÇÔ¼ö : long int pathconf (const char *filename, int parameter)
ÀÌ ÇÔ¼ö´Â filenameÀ̶ó´Â À̸§À» °¡Áø ÆÄÀÏ¿¡ Àû¿ëµÇ´Â Á¦ÇÑ¿¡ ´ëÇØ¼ ÁúÀÇÇϴµ¥ »ç¿ëµÈ´Ù. parameter Àμö´Â ¹Ø¿¡ ¼³¸íµÈ `_PC_' »ó¼öÁß ÇÑ °³°¡ µÈ´Ù.
pathconf·ÎºÎÅÍÀÇ º¸Åë ¸®ÅϵǴ °ªÀº ´ç½ÅÀÌ ¿äûÇÑ °ªÀÌ´Ù. ¾î¶² Á¦ÇÑÀ¸·Î °¿äÇÒ ¼ö ¾ø°Å³ª ¿¡·¯ °¡ ¹ß»ýÇÑ °æ¿ì¿¡´Â -1ÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù. ÀüÀÚÀÇ °æ¿ì¿¡´Â errno°¡ ¼³Á¤µÇÁö ¾Ê¾Ò°í, ÈÄÀÚÀÇ °æ¿ì¿¡ ´Â ¹®Á¦°¡ ¹ß»ýµÈ ¿øÀÎÀ» ÁöÀûÇϱâ À§Çؼ errno°¡ ¼³Á¤µÇ¾ú´Ù. ±×·¡¼ ÀÌ ÇÔ¼ö¸¦ ¾ÈÁ¤ÀûÀ¸·Î »ç¿ë Çϱâ À§ÇÑ À¯ÀÏÇÑ ¹æ¹ýÀº ±×°ÍÀ» È£ÃâÇϱâ Àü¿¡ errno¸¦ 0À¸·Î ÀúÀåÇØ³õ´Â °ÍÀÌ´Ù.
ÆÄÀÏ À̸§ ±¸¹® ¿¡·¯µé ¿Ü¿¡µµ( 6.2.3Àý [File Name Errors] 60 ÆäÀÌÁö ÂüÁ¶.), ´ÙÀ½ÀÇ errno´Â ÀÌ ÇÔ ¼ö¸¦ À§Çؼ Á¤ÀǵǾú´Ù.
EINVAL
parameter°ªÀÌ À¯È¿ÇÏÁö ¾Ê°Å³ª, ±× ½ÇÇàÀÌ ÁöÁ¤µÈ ÆÄÀÏÀ» À§Çؼ ±× parameter¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù.
ÇÔ¼ö : long int fpathconf (int filedes, int parameter)
À̰ÍÀº Á¤º¸¸¦ ¿äûÇϱâ À§ÇÑ ÆÄÀÏÀ» Á¤ÇÔ¿¡ ÀÖ¾î¼, ÆÄÀÏÀ̸§À» »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó °³¹æµÈ ÆÄÀÏ ±â¼úÀÚ¸¦ »ç¿ëÇÑ´Ù´ÂÁ¡À» Á¦¿ÜÇϰí´Â pathconf¿Í °°´Ù. ´ÙÀ½ÀÇ errno´Â ÀÌ ÇÔ¼ö¸¦ À§ÇØ Á¤ÀÇµÈ ¿¡·¯ »óȲÀÌ´Ù.
EBADF
filedes Àμö°¡ À¯È¿ÇÑ ÆÄÀÏ ±â¼úÀÚ°¡ ¾Æ´Ï´Ù.
EINVAL
parameter ÀÇ °ªÀÌ À¯È¿ÇÏÁö ¾Ê°Å³ª, ±× ½ÇÇàÀº ÁöÁ¤µÈ ÆÄÀÏÀ» À§Çؼ ±× parameter¸¦ Áö¿øÇÏÁö
¾Ê´Â´Ù.
´ÙÀ½Àº pathconf ¿Í fpathconf¿¡ parameter Àμö·Î½á »ç¿ëÇÒ ¼ö ÀÖ´Â ±âÈ£ »ó¼öµéÀÌ´Ù. ±× °ªµéÀº ¸ðµÎ Á¤¼ö »ó¼öµéÀÌ´Ù.
_PC_LINK_MAX LINK_MAX ÀÇ °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_PC_MAX_CANON MAX_CANON ÀÇ °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_PC_MAX_INPUT MAX_INPUTÀÇ °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_PC_NAME_MAX NAME_MAXÀÇ °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_PC_PATH_MAX PATH_MAXÀÇ °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_PC_PIPE_BUF PIPE_BUFÀÇ °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_PC_CHOWN_RESTRICTED _POSIX_CHOWN_RESTRICTEDÀÇ °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_PC_NO_TRUNC _POSIX_NO_TRUNCÀÇ °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
_PC_VDISABLE _POSIX_VDISABLEÀÇ °ª¿¡ ´ëÇØ¼ ÁúÀÇÇÑ´Ù.
27.10 À¯Æ¿¸®Æ¼ ÇÁ·Î±×·¥ ¿ë·® Á¦Çѵé.
POSIX.2 Ç¥ÁØÀº À¯Æ¿¸®Æ¼ µ¿ÀÛ¿¡ Àû¿ëµÇ´Â ½Ã½ºÅÛ Á¦ÇÑÀ» Á¤Çسõ¾Ò°í, ´ç½ÅÀº sysconf¸¦ ÅëÇØ¼ ±× Á¦ÇÑÀ» ¾ï¼¼½ºÇÒ ¼ö ÀÖ´Ù. GNU C ¶óÀ̺귯¸®´Â ±× Á¦ÇѵéÀ» À§Çؼ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇϰí, ¸¸ÀÏ ´ç ½ÅÀÌ ±× °ªÀ» ÁúÀÇÇϸé sysconf´Â ±×µéÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù; ÇÏÁö¸¸ ±× °ªµéÀº ¾Æ¹«·± Àǹ̾ø´Â Á¤º¸ÀÌ ´Ù. ±×µéÀº POSIX.2°¡ Çã°¡ÇÏ´Â °¡Àå ÀÛÀº °ªµéÀÌ´Ù.
¸ÅÅ©·Î : int BC__BASE__MAX
bc À¯Æ¿¸®Æ¼¸¦ Áö¿øÇϵµ·Ï º¸ÁõµÇ´Â obaseÀÇ ÃÖ´ë°ª.
¸ÅÅ©·Î : int BC__SCALE__MAX
bc À¯Æ¿¸®Æ¼¸¦ Áö¿øÇϵµ·Ï º¸ÁõµÇ´Â scaleÀÇ ÃÖ´ë°ª
¸ÅÅ©·Î : int BC__DIM__MAX
bc À¯Æ¿¸®Æ¼¸¦ Áö¿øÇϵµ·Ï º¸ÁõµÇ´Â ÇÑ °³ÀÇ ¹è¿¾È¿¡ µé¾î°¥¼ö ÀÖ´Â ¿ä¼ÒµéÀÇ ÃÖ´ë°¹¼ö.
¸ÅÅ©·Î : int BC__STRING__MAX
bc À¯Æ¿¸®Æ¼¸¦ Áö¿øÇϵµ·Ï º¸ÁõµÇ´Â ÇÑ °³ÀÇ ¹®ÀÚ¿¾È¿¡ µé¾î°¥ ¼ö ÀÖ´Â ¹®ÀÚµéÀÇ ÃÖ´ë °³¼ö.
¸ÅÅ©·Î : int BC__DIM__MAX
bc À¯Æ¿¸®Æ¼¸¦ Áö¿øÇϵµ·Ï º¸ÁõµÇ´Â ÇÑ °³ÀÇ ¹è¿¾È¿¡ µé¾î°¥ ¼ö ÀÖ´Â ¿ä¼ÒµéÀÇ ÃÖ´ë °³¼ö.
¸ÅÅ©·Î : int COLL__WEIGHTS__MAX
·ÎÄÉÀÏ(locale)À» À§Çؼ ´ëÁ¶¹®ÀÚ¿À» Á¤ÀÇÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Â °¡ÁßÄ¡ÀÇ ÃÖ´ë°ª.
¸ÅÅ©·Î : int EXPR__NEST__MAX
expr À¯Æ¿¸®Æ¼¿¡ ÀÇÇØ¼ °ýÈ£¾È¿¡ ÁßøµÉ ¼ö Àִ ǥÇö½ÄÀÇ ÃÖ´ë °³¼ö.
¸ÅÅ©·Î : int LINE__MAX
ÅØ½ºÆ®-ÁöÇâ POSIX.2 À¯Æ¿¸®Æ¼µéÀÌ Áö¿øÇÒ ¼ö ÀÖ´Â ÃÖ´ë ÅØ½ºÆ® ¶óÀÎ. (¸¸ÀÏ ´ç½ÅÀÌ ±× À¯Æ¿¸®Æ¼ÀÇ GNU ¹öÀüÀ» »ç¿ëÇϰí ÀÖ´Ù¸é, °¡»ó ¸Þ¸ð¸®¸¦ »ç¿ëÇÔÀ¸·Î½á °¿äµÈ °ÍÀ» Á¦¿ÜÇϰí´Â ½ÇÁ¦·Î ¾Æ¹«·± Á¦ÇÑÀÌ ¾øÁö¸¸, ±× ¶óÀ̺귯¸®°¡ ´ç½Å¿¡°Ô À̰Ϳ¡ ´ëÇØ¼ ¾Ë¸± ¼ö ÀÖ´Â ¾Æ¹«·± ¹æ¹ýÀÌ ¾ø´Ù. )
¸ÅÅ©·Î : int EQUIV__CLASS__MAX
·ÎÄÉÀÏ(locale) Á¤ÀÇ¿¡¼ LC_COLLATE ¹üÁÖ `order' Ű¿öµåÀÇ ¿£Æ®¸®¿¡ ¹èÁ¤µÉ ¼ö ÀÖ´Â °¡ÁßÄ¡ÀÇ ÃÖ´ë°ª. GNU C ¶óÀ̺귯¸®´Â °ð ·ÎÄÉÀÏ Á¤ÀǵéÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù.
27.11 À¯Æ¿¸®Æ¼ Á¦ÇѵéÀ» À§ÇÑ ÃÖ´ë°ª.
_POSIX2_BC_BASE_MAX
POSIX.2¿¡ ÀÇÇØ Çã¿ëµÇ°í ÀÖ´Â ´ëºÎºÐÀÇ Á¦ÇÑÀ¸·Î½á, bc À¯Æ¿¸®Æ¼¾È¿¡ ÀÖ´Â obaseÀÇ ÃÖ´ë°ªÀÌ´Ù. ±×°ªÀº 99.
_POSIX2_BC_DIM_MAX
bc À¯Æ¿¸®Æ¼¾È¿¡ ÀÖ´Â ¹è¿ÀÇ ÃÖ´ëÅ©±â¸¦ À§Çؼ POSIX.2¿¡ ÀÇÇØ¼ ´ëºÎºÐ Çã¿ëµÇ°í ÀÖ´Â Á¦ÇѰª. ±×°ªÀº 2048.
_POSIX2_BC_SCALE_MAX
bc À¯Æ¿¸®Æ¼¾È¿¡ ÀÖ´Â scaleÀÇ ÃÖ´ëÅ©±â¸¦ À§Çؼ POSIX.2¿¡ ÀÇÇØ¼ ´ëºÎºÐÇã¿ëµÇ°í ÀÖ´Â Á¦ÇѰª. ±×°ªÀº 99.
_POSIX2_BC_STRING_MAX
bc À¯Æ¿¸®Æ¼¾È¿¡ ÀÖ´Â ¹®ÀÚ¿ »ó¼öÀÇ ÃÖ´ëÅ©±â¸¦ À§Çؼ POSIX.2¿¡ ÀÇÇØ¼ ´ëºÎºÐ Çã¿ëµÇ°í ÀÖ´Â Á¦ÇѰª. ±× °ªÀº 1000ÀÌ´Ù.
_POSIX2_COLL_WEIGHTS_MAX
·ÎÄÉÀÏÀ» À§Çؼ ´ëÁ¶ ¹®ÀÚ¿À» Á¤ÀÇÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Â °¡ÁßÄ¡ÀÇ ÃÖ´ë°ªÀ¸·Î POSIX.2¿¡ ÀÇÇØ¼ ´ëºÎºÐ Çã¿ë µÇ°í ÀÖ´Â Á¦ÇѰª. ±× °ªÀº 2ÀÌ´Ù.
_POSIX2_EXPR_NEST_MAX
expr À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÒ ¶§ °ýÈ£¾È¿¡ ÁßøµÈ Ç¥Çö½ÄÀÇ ÃÖ´ë°³¼ö·Î½á POSIX.2¿¡ ÀÇÇØ¼ ´ëºÎºÐ Çã¿ë µÇ°í ÀÖ´Â Á¦ÇѰªÀÌ´Ù. ±× °ªÀº 32ÀÌ´Ù.
_POSIX2_LINE_MAX
ÅØ½ºÆ® À¯Æ¿¸®Æ¼µéÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Â ÅØ½ºÆ® ¶óÀÎÀÇ ÃÖ´ë Å©±â·Î½á POSIX.2¿¡ ÀÇÇØ¼ ´ëºÎºÐ Çã¿ë µÇ°í ÀÖ´Â Á¦ÇѰª. ±× °ªÀº 2048ÀÌ´Ù.
_POSIX2_EQUIV_CLASS_MAX
·ÎÄÉÀÏ Á¤ÀÇ¿¡¼ LC_COLLATE ¹üÁÖ `order' Ű¿öµå ¿£Æ®¸®¿¡ ¹èÁ¤ÇÒ ¼ö ÀÖ´Â °¡ÁßÄ¡ÀÇ ÃÖ°³°ªÀ¸·Î ½á, POSIX.2¿¡ ÀÇÇØ¼ ´ëºÎºÐ Çã¿ëµÇ°í ÀÖ´Â Á¦ÇѰªÀÌ´Ù. ±× °ªÀº 2. GNU C ¶óÀ̺귯¸®´Â °ð ·Î ÄÉÀÏ Á¤ÀǸ¦ Áö¿øÇÏÁö ¾Ê´Â´Ù.
27.12 ¹®ÀÚ¿_Æò°¡ ÆÄ¶ó¹ÌÅ͵é.
POSIX.2´Â confstr ÇÔ¼ö¸¦ »ç¿ëÇØ¼ ¿î¿µÃ¼Á¦·ÎºÎÅÍ ¹®ÀÚ¿-Æò°¡ ÆÄ¶ó¹ÌÅ͵éÀ» ¾ò´Â ¹æ¹ýÀ» Á¤ÀÇ ÇÑ´Ù.
ÇÔ¼ö : size_t confstr (int parameter, char *buf, size_t len)
ÀÌ ÇÔ¼ö´Â buf¿¡¼ ½ÃÀ۵Ǵ ¸Þ¸ð¸® °ø°£¿¡ len±æÀÌÀÇ ¹ÙÀÌÆ®¸¦ °¡Áø ¹®ÀÚ¿À» ÀúÀåÇÏ¿©, ¹®ÀÚ¿-Æò °¡ ½Ã½ºÅÛ ÆÄ¶ó¹ÌÅ͸¦ Àд´Ù. parameter Àμö´Â ¹Ø¿¡ ¼³¸íµÈ `_CS_'ÁßÀÇ Çϳª°¡ µÉ °ÍÀÌ´Ù.
confstr·ÎºÎÅÍ º¸Åë ¸®ÅϵǴ °ªÀº ´ç½ÅÀÌ ¿äûÇß´ø ¹®ÀÚ¿°ªÀÇ ±æÀÌ´Ù. ¸¸ÀÏ ´ç½ÅÀÌ buf¸¦ ³Î Æ÷ÀÎ ÅÍ·Î ÇÏ¿© ±× ÇÔ¼ö¸¦ È£Ãâ ÇÑ´Ù¸é, confstrÀº ±× ¹®ÀÚ¿À» ÀúÀåÇÏ·Á ½ÃµµÇÏÁö ¾Ê´Â´Ù; ±×°ÍÀº ´ÜÁö ±× ±æÀ̸¦ ¸®ÅÏÇÑ´Ù. ¿¡·¯¸¦ ÁöÀûÇÏ´Â °ªÀº 0ÀÌ´Ù.
¸¸ÀÏ ´ç½ÅÀÌ ¿äûÇß´ø ¹®ÀÚ¿ÀÌ ¹öÆÛº¸´Ù ±æ´Ù¸é(±×°ÍÀº, len-1 º¸´Ù ±æ´Ù), confstrÀº ´ÜÁö ±× ¸¸Å( ³Î Á¾·á ¹®ÀÚ¸¦ À§ÇÑ °ø°£Àº ³²±â°í.)¸¸ ÀúÀåÇÑ´Ù. ´ç½ÅÀº confsrÀÌ lenº¸´Ù Å©°Å³ª °°Àº °ªÀ» ¸®ÅÏ ÇßÀ» ¶§ ±×¿Í °°Àº ÀÏÀÌ ¹ß»ýÇß´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ´ÙÀ½ÀÇ errno´Â ÀÌ ÇÔ¼ö¸¦ À§ÇØ Á¤ÀÇµÈ ¿¡·¯ »óȲÀÌ´Ù.
EINVAL
parameter °ªÀÌ À¯È¿ÇÏÁö ¾Ê´Ù.
´ÙÀ½Àº confstr·Î ÀÐÀ» ¼ö ÀÖ´Â ´ÜÁö ÇÑ °³ÀÇ ÆÄ¶ó¹ÌÅÍÀÌ´Ù.
_CS_PATH
ÀÌ ÆÄ¶ó¹ÌÅÍÀÇ °ªÀº ½ÇÇàÆÄÀÏÀ» ãÀ» ¶§ µðÆúÆ® °æ·Î¿¡¼ ãµµ·ÏÇÑ´Ù. À̰ÍÀº ·Î±×ÀÎÇÑÈÄ¿¡ »ç¿ë ÀÚ°¡ µðÆúÆ®·Î °®´Â °æ·Î°¡ µÈ´Ù.
¹®ÀÚ¿ Å©±â¿¡ ´ëÇÑ Á¦ÇѾøÀÌ confstrÀ» »ç¿ëÇϴ¹æ¹ýÀº ±×°ÍÀ» µÎ ¹ø È£ÃâÇÏ´Â °ÍÀÌ´Ù. ù ¹øÂ° È£ÃâÀº ±æÀ̸¦ ¾ò°í, ±×°Í¿¡ ±Ù°ÅÇÏ¿© ¹öÆÛ¸¦ ÇÒ´çÇÏ°í ´Ù½Ã confstrÀ» È£ÃâÇØ¼ ¹öÆÛ¸¦ ü¿ö¶ó. ´Ù À½°ú °°ÀÌ.
char *
get_default_path (void)
{
size_t len = confstr (_CS_PATH, NULL, 0);
char *buffer = (char *) xmalloc (len);
if (confstr (_CS_PATH, buf, len + 1) == 0)
{
free (buffer);
return NULL;
}
return buffer;
}