Á¦ 2Àå : ¿¡·¯ º¸°í
GNU CÀÇ ¸¹Àº ÇÔ¼öµéÀº ¿¡·¯ Á¶°ÇµéÀ» Á¶»çÇÏ¿© º¸°íÇϸç, ¶§·Î´Â ´ç½ÅÀÇ ÇÁ·Î±×·¥ÀÌ ÀÌ·¯ÇÑ ¿¡·¯ Á¶°ÇµéÀ» Á¶»çÇÒ Çʿ䰡 ÀÖ´Ù. ¿¹¸¦ µé¾î,´ç½ÅÀÌ ÀÔ·ÂÆÄÀÏÀ» ¿ ¶§,´ç½ÅÀº ±× ÆÄÀÏÀÌ ½ÇÁ¦·Î Á¤È®ÇÏ°Ô ¿¸± ¼ö ÀÖ´ÂÁö¸¦ È®Á¤ÇØ¾ß Çϸç,¿¡·¯¸Þ¼¼Áö¸¦ ±â·ÏÇϰí, ¶óÀ̺귯¸® ÇÔ¼ö È£Ãâ¿¡ ½ÇÆÐÇÏ ¸é ´Ù¸¥ ÀûÀýÇÑ Á¶Ä¡¸¦ ÃëÇØ¾ß ÇÑ´Ù.
ÀÌ Àå¿¡¼´Â ¿¡·¯ º¸°í µµ±¸µéÀÌ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¸¦ ¼³¸íÇϰڴÙ. ÀÌ µµ±¸µéÀ» »ç¿ëÇÏ·Á¸é ÇÁ·Î ±×·¥¿¡ Çì´õÆÄÀÏ 'errno.h'¸¦ Æ÷ÇÔÇ϶ó.
2.1 ¿¡·¯ üũ
´ëºÎºÐÀÇ ¶óÀ̺귯¸® ÇÔ¼öµéÀº ½ÇÆÐÇÒ ¶§¿¡ ÁöÁ¤Çϴ ƯÁ¤ÇÑ °ªÀ» ¹ÝȯÇÑ´Ù. ±× ƯÁ¤ÇÑ °ªÀ̶õ Àü ÇüÀûÀ¸·Î -1,³Î(null) Æ÷ÀÎÅÍ, EOF¶ó´Â »ó¼öµîÀÌ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ¸®ÅÏ °ªÀº ¿¡·¯°¡ ¹ß»ýÇß´Ù´Â »ç ½Ç¸¸À» ÁöÀûÇØ ÁØ´Ù. ¾î¶² Á¾·ùÀÇ ¿¡·¯°¡ ¹ß»ýÇß´ÂÁö¸¦ ¾Ë·Á¸é,º¯¼ö errno¿¡ ÀúÀåµÈ ¿¡·¯Äڵ带 Á¶ »çÇÒ Çʿ䰡 ÀÖ´Ù.ÀÌ º¯¼ö´Â Çì´õÆÄÀÏ 'errno.h'¿¡ ¼±¾ðµÇ¾î ÀÖ´Ù.
º¯¼ö volatile int errno
º¯¼ö errno´Â ½Ã½ºÅÛ ¿¡·¯ ¼ýÀÚ¸¦ ´ã´Â´Ù.´ç½ÅÀº errnoÀÇ °ªÀ» ¹Ù²Ü ¼ö ÀÖ´Ù.
errno´Â volatile·Î ¼±¾ðµÇ¾î ÀÖÀ¸¹Ç·Î ºÎÈ£Ãë±ÞÀÚ¿¡ ÀÇÇØ ¹Ù²ãÁú ¼öµµ ÀÖ´Ù; 21.4 [Ãë±ÞÀÚ Á¤ÀÇÇÏ ±â],285ÂÊ ÂüÁ¶. ±×·¯³ª,ÇÕ´çÇÏ°Ô ¾º¾îÁø ºÎÈ£Ãë±ÞÀÚ´Â errnoÀÇ °ªÀ» ÀúÀåÇϱ⠶§¹®¿¡, ´ç½ÅÀÌ ºÎÈ£ Ãë±ÞÀÚ¸¦ Àû¾î¾ß ÇÒ ´ë¸¦ Á¦¿ÜÇϰí´Â ¹Ù²ð °¡´É¼º¿¡ ´ëÇØ¼ ¿ì·ÁÇÒ ÇÊ¿ä´Â ¾ø´Â °ÍÀÌ´Ù.
ÇÁ·Î±×·¥ÀÌ ½ÃÀÛÇÒ ¶§ errnoÀÇ ÃʱⰪÀº Á¦·ÎÀÌ´Ù. ¸¹Àº ¶óÀ̺귯¸® ÇÔ¼öµéÀº ¾î¶² ¿¡·¯¸¦ ¸¸³¯ ¶§ ±×°ÍÀ» Á¦·Î°¡ ¾Æ´Ñ °ªÀ¸·Î ¸¸µéµµ·Ï µÇ¾îÀÖ´Ù.ÀÌ·¯ÇÑ ¿¡·¯ Á¶°ÇÀº °¢ ÇÔ¼ö¿¡ ±â·ÏµÇ¾î ÀÖ´Ù. ÀÌ ÇÔ¼öµéÀÌ ¼º°øÇßÀ» ¶§¿¡´Â errno¸¦ ¹Ù²ÙÁö ¾Ê´Â´Ù; ±×·¯¹Ç·Î,´ç½ÅÀº È£ÃâÀÌ ½ÇÆÐÇß´ÂÁö¸¦ °áÁ¤ÇÏÁö ¾Ê°í¼´Â errno¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.±×°ÍÀÇ ÀûÀýÇÑ »ç¿ë¹ýÀº °¢ ÇÔ¼ö¿¡ ±â·ÏµÇ¾î ÀÖ´Ù. È£ÃâÀÌ ½ÇÆÐ ÇÏ°Ô µÇ¸é,´ç½ÅÀº errno¸¦ °Ë»çÇÒ ¼ö ÀÖ´Ù.
¸¹Àº ¶óÀ̺귯¸® ÇÔ¼öµéÀº ´Ù¸¥ ¶óÀ̺귯¸® ÇÔ¼öµéÀ» È£ÃâÇÏ´Ù°¡ ½ÇÆÐÇÑ °á°ú·Î¼ errnoÀÇ °ªÀ» Á¦·Î¾Æ´Ñ °ªÀ¸·Î ¸¸µé ¼ö ÀÖ´Ù. ´ç½ÅÀº ¾î¶°ÇÑ ¶óÀ̺귯¸® ÇÔ¼ö¶óµµ ±× ÇÔ¼ö°¡ ¿¡·¯¸¦ ¹Ýȯ ÇÒ ¶§¿¡
errnoÀÇ °ªÀ» º¯°æÇÒ ¼ö ÀÖÀ½À» ¾Ë¾Æ¾ß ÇÑ´Ù.
¿î¿ë ³ë¿ìÆ® : ANSI C¿¡¼´Â errno¸¦ º¯¼ö·Î¼ ´Ù·ç±âº¸´Ù´Â "º¯°æ°¡´ÉÇÑ ¿ÞÆí °ª"À¸·Î ±ÔÁ¤Çϰí, ±×°ÍÀÌ ¸ÅÅ©·Î·Î ¿Ï¼ºµÇ´Â °ÍÀ» Çã¿ëÇϰí ÀÖ´Ù. ¿¹¸¦ µé¸é,±×°ÍÀÇ È®ÀåÀº *_errno()¿Í °°ÀÌ ÇÔ¼ö È£ÃâÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. »ç½Ç»ó,±×°ÍÀº GNU ½Ã½ºÅÛ»ó¿¡ Á¸ÀçÇÏ´Â ±×´ë·ÎÀÌ´Ù. ºñ GNU½Ã½ºÅÛ »ó¿¡¼ GNU ¶óÀ̺귯¸®´Â ƯÁ¤ÇÑ ½Ã½ºÅÛÀÌ Çô¿ëÇÏ´Â ¸ðµç °ÍÀ» ÇÒ ¼ö°¡ ÀÖ´Ù.
¿¡·¯°¡ ¹ß»ýÇÒ °æ¿ì¿¡ sqrt¿Í atan°ú °°ÀÌ ¿Ïº®ÇÏ°Ô ÀûÇÕÇÑ °ª¸¸À» ¹ÝȯÇÏ°Ô ÇÏ´Â ¸î¸î ¶óÀ̺귯 ¸® ÇÔ¼öµéµµ ÀÖ´Ù.À̿Ͱ°Àº ÇÔ¼öµéÀÇ °æ¿ì¿¡´Â ¸¸¾à ´ç½ÅÀÌ ¿¡·¯°¡ ÀϾ´ÂÁö¸¦ üũÇϰíÀÚ ÇÑ´Ù¸é
ÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ ÁöÁ¤µÈ ¹æ¹ýÀ¸·Î errno¿¡ Á¦·Î¸¦ ´ã¾ÆµÎ°í, ±×·± ´ÙÀ½¿¡ ±× °ªÀ» üũÇÏ°Ô µÈ ´Ù.
¸ðµç ¿¡·¯ ÄÚµå´Â ºÎÈ£ ¸íĪÀ» °®°í ÀÖ´Ù; ±×°ÍµéÀº 'errno.h'¿¡ Á¤ÀÇµÈ ¸ÅÅ©·ÎÀÌ´Ù.±× ¸íεéÀº 'E' ¿Í ´ë¹®ÀÚ ¶Ç´Â ±¸µÎÁ¡À¸·Î ½ÃÀ۵ȴÙ;´ç½ÅÀº ÀÌ·¯ÇÑ ¸íεéÀ» ¿¹¾àµÈ ¸íĪÀ¸·Î »ý°¢ÇÏ´Â °Ô ÁÁ´Ù. 1.3.3.[¿¹¾àµÈ ¸íĪ],4ÂÊ ÂüÁ¶.
¿¡·¯ÄÚµåÀÇ °ªÀº ¸ðµÎ ¾ç¼öÀÇ Á¤¼öÀÌ¸ç ¸ðµÎ º°°³·Î ±¸ºÐµÈ´Ù. ´Ü ÇϳªÀÇ ¿¹¿Ü°¡ ÀÖ´Ù: EWOULDBLOCK°ú EAGAINÀº °°Àº °æ¿ìÀÌ´Ù. ÀÌ °ªµéÀº ºÐ¸íÇÑ °ÍÀ̹ǷÎ, ´ç½ÅÀÌ switch ±¸¹® ¿¡¼ ¶óº§·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù; ¹°·Ð EWOULDBLOCK°ú EAGAINÀ» ±×´ë·Î »ç¿ëÇÒ ¼ö´Â ¾ø´Ù.´ç½ÅÀº ÇÁ·Î±×·¥¿¡¼ ÀÌµé ºÎÈ£ Á¤¼öÀÇ Æ¯Á¤ÇÑ °ª¿¡ ´ëÇØ¼ ´Ù¸¥ °¡Á¤À» ÇØ¼´Â ¾ÈµÈ´Ù.
errnoÀÇ °ªÀÌ ¹Ýµå½Ã ÀÌ·¯ÇÑ ¸ÅÅ©·ÎµéÀÇ °ª°ú ÀÏÄ¡ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¿Ö³ÄÇϸé,¾î¶² ¶óÀ̺귯¸® ÇÔ¼ö µéÀº °¢°¢ÀÇ »óȲ¿¡ µû¶ó ´Ù¸¥ ¿¡·¯ Äڵ带 ¹ÝȯÇÒ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ƯÁ¤ÇÑ ¶óÀ̺귯¸® ÇÔ¼ö¿¡ ¼¸¸ Àǹ̸¦ °®µµ·Ï µÇ¾îÀÖ´Â °ªµéÀº ÀÌ ¾È³»¼°¡ ±× ÇÔ¼öÀÇ °ªÀ¸·Î º¸¿©ÁÖ´Â ¹Ù·Î ±× °ªÀÌ´Ù.
ºñ GNU üÁ¦¿¡¼´Â ´ë°³ÀÇ °æ¿ì ¾î¶² ½Ã½ºÅÛÀÌ À¯È¿ÇÏÁö ¾ÊÀº Æ÷ÀÎÅͰ¡ Àμö·Î¼ ÁÖ¾îÁú ¶§¿¡´Â EFAULT¸¦ ¹ÝȯÇÒ ¼ö ÀÖ´Ù.À̰ÍÀº ´ç½ÅÀÇ ÇÁ·Î±×·¥¿¡¼ ¹ö±×ÀÇ °á°ú·Î¼ ³ªÅ¸³ª°í,GNU üÁ¦¿¡¼ ´Â ÀϾÁö ¾Ê±â ¶§¹®¿¡ ¿ì¸®´Â °³°³ÀÇ ÇÔ¼ö¸¦ ±â¼úÇÒ ¶§ EFAULT¸¦ ¾ð±ÞÇÏÁö ¾Ê°í °ø°£À» ÀúÀå ÇØ µÎ¾ú´Ù.
2.2 ¿¡·¯ ÄÚµå
¿¡·¯ÄÚµå ¸ÅÅ©·Î´Â Çì´õÆÄÀÏ 'errno.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù. ¸ðµç ¿¡·¯ÄÚµå ¸ÅÅ©·Î´Â Á¤¼öÀÇ »ó¼ö°ªÀ¸ ·Î ¹ßÀüÇÑ´Ù. ¾î¶² ¿¡·¯ÄÚµåµéÀº GNU üÁ¦»ó¿¡¼´Â ÀϾÁö ¾Ê´Â´Ù. ±×·¯³ª ´Ù¸¥ üÁ¦¿¡¼ GNU ÀÇ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ ¶§¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù.
¸ÅÅ©·Î int EPERM
Çã°¡µÇÁö ¾ÊÀº ÀÛµ¿; ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚ(¶Ç´Â ´Ù¸¥ ÀÚ¿ø)³ª ¸í·ÉÀ» ¼öÇàÇÒ¼ö Àִ Ưº°ÇÑ ±Ç¸®¸¦ °¡Áø ÇÁ·Î¼¼½º.
¸ÅÅ©·Î int ENOENT
±×·¯ÇÑ ÆÄÀÏÀ̳ª µð·ºÅ丮 ¾øÀ½: À̰ÍÀº ÀÌ¹Ì Á¸ÀçÇϰí ÀÖÀ» °É·Î ¿¹»óÇÑ ÆÄÀÏÀÌ ¾ø´Â °æ¿ì¿¡ ÀÏ¾î ³ª´Â "ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù"¶ó´Â ¿¡·¯ÀÌ´Ù.
¸ÅÅ©·Î int ESRCH
󸮰¡ ÁöÁ¤µÈ ó¸® ID¿Í ÇÕÄ¡µÇÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î int EINTR
°¡·Îä±â ÇÔ¼ö È£Ãâ;¹ß»ýÇÑ ºñµ¿±â ½ÅÈ£¿Í È£ÃâÀÇ ¹æÇØµÈ Á¾·á. ÀÌ·² °æ¿ì¿¡ ´ç½ÅÀº ´Ù½Ã È£ÃâÀ» ½ÃµµÇغ¸¶ó. ´ç½ÅÀº EINTR·Î ½ÇÆÐÇϱ⠺¸´Ù´Â,ÇÔ¼öµéÀ» Ãë±ÞµÈ ºÎÈ£ ´ÙÀ½¿¡¼ ½ÃÀ۵ǵµ·Ï ¼±ÅÃÇÒ ¼ö ÀÖ´Ù; 21.5 [°¡·Îä±â ÇÁ¸®¹ÌƼºê],293ÂÊ ÂüÁ¶.
¸ÅÅ©·Î int EIO
ÀÔÃâ·Â ¿¡·¯;¾ðÁ¦³ª ¹°¸®ÀûÀÎ ÀÔÃâ·Â ¿¡·¯¿¡ »ç¿ëµÊ.
¸ÅÅ©·Î int ENXIO
±×·± ÀåÄ¡³ª ÁÖ¼Ò°¡ ¾øÀ½. ½Ã½ºÅÛÀÌ ´ç½ÅÀÌ ÆÄÀÏ¿¡¼ ¼³Á¤ÇÑ ÀåÄ¡¸¦ »ç¿ëÇϰíÀÚ Çϳª ±×·¯ÇÑ ÀåÄ¡ ¸¦ ãÀ» ¼ö ¾ø¾ú´Ù. À̰ÍÀº ÀåÄ¡ÆÄÀÏÀÌ À߸ø ÀνºÅçµÇ¾ú°Å³ª, ¹°¸®ÀûÀÎ ÀåÄ¡¸¦ ºü¶ß·È°Å³ª ¶Ç´Â ÄÄ Ç»ÅÍ¿Í Á¦´ë·Î ºÎÇÕµÇÁö ¾Ê¾ÒÀ½À» ÀǹÌÇÑ´Ù.
¸ÅÅ©·Î int E2BIG
Àμö°¡ ³Ê¹« ±æ´Ù;½ÇÇàÇÔ¼ö¿¡ ÀÇÇØ¼ ½ÇÇàµÇ´Â »õ·Î¿î ÇÁ·Î±×·¥¿¡ ( 23.5 [ÆÄÀÏ ½ÇÇàÇϱâ],327ÂÊ Âü Á¶) ÁÖ¾îÁø Àμö°¡ ³Ê¹« Å« ¸Þ¸ð¸® °ø°£À» »ç¿ëÇÒ ¶§. ÀÌ·¯ÇÑ °æ¿ì´Â GNUüÁ¦¿¡¼´Â »ý±âÁö ¾Ê´Â ´Ù.
¸ÅÅ©·Î int ENOEXEC
À¯È¿ÇÏÁö ¾ÊÀº ½ÇÇàÆÄÀÏ Æ÷¸Ë. ÀÌ·¯ÇÑ Á¶°ÇÀº ½ÇÇàÇÔ¼ö¿¡ ÀÇÇØ Á¶»çµÈ´Ù 23.5 [ÆÄÀÏ ½ÇÇàÇϱâ],327ÂÊ ÂüÁ¶.
¸ÅÅ©·Î int EBADF
À߸øµÈ ÆÄÀÏ ±â·Ï; ¿¹¸¦ µé¾î,´ÝÇôÁø ÆÄÀÏÀ» ±â·ÏÇÏ·Á°í ÇϵçÁö ¾²±â ¸ðµå·Î ¿·ÁÁø ÆÄÀÏÀ» ÀÐÀ¸·Á °í ÇÏ´Â °æ¿ì(±× ¹Ý´ëÀÇ °æ¿ìµµ)
¸ÅÅ©·Î int ECHILD
ÀÚ½Ä ÇÁ·Î¼¼½º(child process)°¡ ¾ø´Ù. ÀÌ ¿¡·¯´Â ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ ´Ù·ç´Â ¿ÀÆÛ·¹½Ã¼ÇÀ» »ç¿ëÇß´Â µ¥ ´Ù·ç±âÀ§ÇÑ ¾î´À ÇÁ·Î¼¼½ºµµ Á¸ÀçÇÏÀç ¾ÊÀ» ¶§ ¹ß»ýÇÑ´Ù.
¸ÅÅ©·Î int EDEADLK
±³Âø»óÅ ȸÇÇ; ½Ã½ºÅÛ ÀÚ¿øÀÇ Á¡À¯´Â ±³Âø»óÅÂÀÇ °á°ú¸¦ ³º´Â´Ù. ½Ã½ºÅÛÀÌ ¸ðµç »óȲÀ» ´Ù ¾Ë¾Æ ç°Å¶ó°í º¸ÁõÇÏÁö ¸øÇÑ´Ù.ÀÌ ¿¡·¯´Â ´ç½ÅÀÌ ¿îÀÌ ÁÁ¾Æ¼ ½Ã½ºÅÛÀÌ ¾Ë¾ÆÃ¦ °ÍÀÓÀ» ÀǹÌÇÑ´Ù;½Ã½ºÅÛ Àº ¸Á¼³À̰í ÀÖÀ» »ÓÀÌ´Ù. 8.11 [ÆÄÀÏ ±³Âø],118ÂÊ ÂüÁ¶.
¸ÅÅ©·Î int ENOMEM
ÀÌ¿ëÇÒ ¸Þ¸ð¸®°¡ ¾øÀ½. ¸Þ¸ð¸® ¿ë·®À» ´Ù ½èÀ¸¹Ç·Î ½Ã½ºÅÛÀÌ ´õÀÌ»ó ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ ¼ö ¾ø´Ù.
¸ÅÅ©·Î int EACCES
Çã¿ëµÇÁö ¾ÊÀ½;ÆÄÀÏÀÌ ½ÃµµÇÏ·Á´Â ÀÛµ¿À» Çã¿ëÇÏÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î int EFAULT
ÁÖ¼Ò ¿À·ù; À¯È¿ÇÏÁö ¾ÊÀº Æ÷ÀÎÅͰ¡ ¹ß°ßµÊ.
¸ÅÅ©·Î int ENOTBLK
¾î¶² »óȲ¿¡¼ ÁÖ¾îÁø ÆÄÀÏ¿¡ Ưº°ÇÑ ºí·ÏÀÌ ¾ø´Â °æ¿ì. ¿¹¸¦ µé¸é, º¸ÅëÀÇ ÆÄÀÏÀ» À¯´Ð½º ÆÄÀÏ ½Ã½º ÅÛ¿¡ ¸¶¿îÆ®ÇÏ·Á Çϸé ÀÌ ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.
¸ÅÅ©·Î int EBUSY
½Ã½ºÅÛ ÀÚ¿ø »ç¿ëÁß; ºÐ¹èµÉ ¼ö ¾ø´Â ½Ã½ºÅÛ ÀÚ¿øÀÌ ÀÌ¹Ì »ç¿ëÁßÀÏ ¶§, ¿¹¸¦ µé¾î,´ç½ÅÀÌ ÇöÀç ¸¶ ¿îÆ®µÈ ÆÄÀϽýºÅÛÀÇ ·çÆ®¿¡¼ ÇѰ³ÀÇ ÆÄÀÏÀ» Áö¿ì·Á ÇÒ ¶§¿¡, ÀÌ ¿¡·¯¸¦ ¸¸³´Ù.
¸ÅÅ©·Î int EEXIST
ÆÄÀÏÀÌ Á¸Àç: »õ·Î¿î ÆÄÀÏ·Î ¸¸µé°Ú´Ù°í ÇÑ ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù.
¸ÅÅ©·Î int EXDEV
ÆÄÀϽýºÅÛÀÌ ÀÎÁöÇÒ¼ö ¾ø´Â ¿µ¿ª¿¡ ºÎÀû´çÇÑ ¸µÅ©¸¦ ¸¸µé·Á°í ½ÃµµÇÒ ¶§ ÀÌ ¿¡·¯¸Þ¼¼Áö°¡ ³ª¿Â ´Ù. À̰ÍÀº ´ç½ÅÀÌ ¸µÅ©¸¦ »ç¿ëÇÒ¶§¸¸ ¹ß»ýÇÏÁö¸¸ (9.3ÀýÀÇ [Hard Links] 127ÆäÀÌÁö¸¦ º¸¾Æ)¶Ç, renameÀ¸·Î ÆÄÀÏÀ» Àç¸í¸íÇÒ ¶§ ¹ß»ýÇϱ⵵ ÇÑ´Ù.(9.6ÀýÀÇ [Renaming Files]ÆäÀÌÁö 129¸¦ º¸¶ó)
¸ÅÅ©·Î int ENODEV
µð¹ÙÀ̽ºÀÇ Æ¯º°ÇÑ Á¤·ÄÀ» ÇÏ´Â ÇÔ¼ö¿¡ ÁÖ¾îÁø µð¹ÙÀ̽º°¡ À߸øµÈ ŸÀÔÀÌ´Ù.
¸ÅÅ©·Î int ENOTDIR
ÇÊ¿äÇÏ´Ù°í ¿äûµÈ µð·ºÅ丮°¡ Á¸ÀçÇÏÁö ¾ÊÀ» ¶§ ¹ß»ý.
¸ÅÅ©·Î int EISDIR
ÆÄÀÏÀÌ ÇϳªÀÇ µð·ºÅ丮 ÀÌ´Ù; ¾²±â(writing)À§ÇØ ÀÌ µð·ºÅ丮¸¦ ¿·Á°í ½ÃµµÇÒ ¶§ ÀÌ ¿¡·¯´Â ¹ß»ý ÇÑ´Ù.
¸ÅÅ©·Î int EINVAL
ÀûÇÕÇÏÁö ¾ÊÀº Àμö. À̰ÍÀº ¶óÀ̺귯¸® ÇÔ¼ö¿¡ À߸øµÈ Àμö¸¦ Áִ°Ͱú °°Àº Á¾·ùÀÇ ´Ù¾çÇÑ ¹®Á¦ ¸¦ ÁöÀûÇϴµ¥ »ç¿ëÇÑ´Ù.
¸ÅÅ©·Î int ENFILE
Áö±Ý ÇöÀç ÇÁ·Î¼¼½º¿¡ ³Ê¹« ¸¹Àº ÆÄÀÏÀÌ ¿ÀÇÂµÇ¾î¼ ´õ ÀÌ»ó ¿ÀÇÂÇÒ¼ö ¾ø´Ù. º¹Á¦µÈ ±â¼úÀÚ°¡ ÀÌ Á¦ÇÑ¿¡ ´ëÇÏ¿© ¼ÀÇÑ´Ù.
¸ÅÅ©·Î int ENFILE
Àüü ½Ã½ºÅÛ¿¡ ¿·ÁÁ®ÀÖ´Â ³Ê¹« ¸¹Àº °³º°ÆÄÀϵéÀÌ ÀÖ´Ù. ¿¬°áµÇ ä³ÎÀÇ ¾î¶² °ÍÀÌ¶óµµ ÆÄÀÏ ÇÏ ³ª¸¦ ¿©´Â°Í°ú °°ÀÌ ¼¾´Ù.; 8.5.1ÀýÀÇ [¿¬°áµÈ ü³Î]À» ÂüÁ¶Ç϶ó. ÀÌ ¿¡·¯´Â °áÄÚ GNU ½Ã½ºÅÛ¿¡¼´Â ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î int ENOTTY
ÇϳªÀÇ º¸Åë ÆÄÀÏ¿¡¼ Å͹̳¯ ¸ðµå¸¦ Á¤ÇÏ·Á ½ÃµµÇϴ°Ͱú °°Àº ºÎÀûÇÕÇÑ ÀÔÃâ·Â Á¦¾î ¿ÀÆÛ·¹ÀÌ¼Ç ¿¡ ¹ß»ý.
¸ÅÅ©·Î int ETXTBSY
ÇöÀç »ç¿ëµÇ°í ÀÖ´Â ÆÄÀÏÀ» ´Ù½Ã Àаųª ¾²±âÀ§ÇØ ¿ÀÇÂÇÏ·Á ½ÃµµÇÒ ¶§ ¹ß»ý ("text fiel busy" ¶ó°í ÇÑ´Ù.) À̰ÍÀº GNU½Ã½ºÅÛ¿¡¼´Â ¿¡·¯°¡ ¾Æ´Ï´Ù; ÅØ½ºÆ®´Â ÇÊ¿äÇϸé Ä«ÇǵȴÙ.
¸ÅÅ©·Î int EFBIG
ÆÄÀÏÀÌ ³Ê¹« Å©´Ù; ÆÄÀÏÀÇ Å©±â°¡ ½Ã½ºÅÛÀÌ Çã¿ëÇÏ´Â °Í º¸´Ù ´õ Å©´Ù.
¸ÅÅ©·Î int ENOSPC
µð¹ÙÀ̽º¿¡ °ø°£ÀÌ ³²°ÜÁöÁö ¾Ê¾Ò´Ù.; ÆÄÀÏ¿¡ ¾²±â ¸í·ÉÀ» ÁáÀ» ¶§ µð½ºÅ©°¡ °¡µæÂ÷¼ °ø°£ÀÌ ³²¾Æ ÀÖÁö ¾ÊÀ¸¸é ½ÇÆÐÇÑ´Ù.
¸ÅÅ©·Î int EXPIPE
ÀûÇÕÇÏÁö ¾ÊÀº Ž»ö ¸í·É.( pipe¿¡¼ ó·³ )
¸ÅÅ©·Î int EROFS
Àбâ Àü¿ëÀ¸·Î µÈ ¾î¶² ÆÄÀϽýºÅÛ¿¡ ¹«¾ð°¡¸¦ ¼öÁ¤ÇÏ·Á°í ½ÃµµÇÒ ¶§
¸ÅÅ©·Î int ENLINK
³Ê¹« ¸¹ÀÌ ¿¬°á.; ÇϳªÀÇ ´ÜÀÏÇÑ ÆÄÀÏÀÇ ¸µÅ© ¼ö°¡ ³Ê¹« ±æ´Ù. ¸®³×ÀÓÀº ÀÌ¹Ì ÇÒ¼ö Àִ°ͺ¸´Ù ¸¹Àº ¸µÅ©¸¦ °¡Áø ÇÑ ÆÄÀÏÀ» ¸®³×ÀÓÇϸé ÀÌ ¿¡·¯ÀÇ ¿øÀÎÀÌ µÈ´Ù. ( 9.6ÀýÀÇ [ÆÄÀÏ Àç¸í¸í]ÆäÀÌÁö 129 ÂüÁ¶)
¸ÅÅ©·Î int EPIPE
ºÎ·¯Áø ÆÄÀÌÇÁ; ´Ù¸¥ ÆÄÀÌÇÁÀÇ ³¡¿¡¼ ÇÁ·Î¼¼½º¸¦ Àд °ÍÀº ºÒ°¡´É ÇÏ´Ù. ¸ðµç ¶óÀ̺귯¸® ÇÔ¼ö ´Â SIGPIPE·Î ÀϹÝÈµÈ ¿¡·¯Äڵ带 ¸®ÅÏÇÑ´Ù. ÀÌ ½ÅÈ£´Â ¸¸¾à 󸮵ÇÁö ¾Ê°Å³ª ¸·¾ÆÁöÁö ¾ÊÀ¸¸é ±× ÇÁ·Î±×·¥À» ¸ØÃß°Ô ÇÑ´Ù. ±×·¯¹Ç·Î ´ç½ÅÀÇ ÇÁ·Î±×·¥ÀÌ Ã³¸®µÇ°Å³ª ºí·ÏµÈ SIGPIPE¸¦ °®Áö ¾ÊÀ¸¸é Ç×»ó EPIPE°¡ º¸ÀÏ °ÍÀÌ´Ù.
¸ÅÅ©·Î int EDOM
µµ¸ÞÀÎ ¿¡·¯; ÀμöÀÇ °ªÀÌ Á¤ÀÇµÈ ÇÔ¼ö¸¦ Áö³ª µµ¸ÞÀο¡°Ô Àü´ÞµÇÁö ¾Ê¾ÒÀ» ¶§ ¼öÇÐÀû ÇÔ¼ö¿¡ ÀÇÇØ »ç¿ëµÈ´Ù.
¸ÅÅ©·Î int ERANGE
¹üÀ§ ¿¡·¯; °á°ú °ªÀÌ ¿À¹öÇ÷ο쳪 ¾ð´õÇ÷οì·Î ÀÎÇØ Ç¥ÇöµÇÁö ¾ÊÀ» ¶§ ¼öÇÐÀû ÇÔ¼ö¿¡ ÀÇÇØ »ç ¿ëµÈ´Ù.
¸ÅÅ©·Î int EAGAIN
ÀÚ¿øÀ» ÀϽÃÀûÀ¸·Î »ç¿ëÇÒ¼ö ¾ø´Ù.; ±× È£ÃâÀº ³ªÁß¿¡ ´ç½ÅÀÌ ´Ù½Ã Àç½Ãµµ ÇÒ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¿À Á÷ ºÐ±âÁ¡¿¡¼ ÀÌ·¯ÇÑ ÀÌÀ¯·Î EAGAIN¿¡·¯ Äڵ带 ¸®ÅÏÇÑ´Ù.
¸ÅÅ©·Î int EWOULDBLOCK
ºñºí·°È ¸ðµå·Î Á¤ÇØÁø ¾î¶² ´ë»ó¿¡ ºí·ÏÀ» ½ÃµµÇÏ·Á ÇÏ´Â ¿ÀÆÛ·¹À̼ǿ¡ ´ëÇØ ¹ß»ý.
À̽ļº : 4.4BSD¿Í GNU¿¡¼ EWOULDBLOCK ¿Í EAGAINÀº °°´Ù. BSDÃʱ⠹öÀü¿¡¼´Â À̰ÍÀÌ µÎ °³ÀÇ µ¶¸³Àû ÄÚµå ·Î¼ EWOULDBLOCK´Â ºñºí·ÏÈ ¸ðµå·Î Á¤ÇØÁø ´ë»ó¿¡ ºí·ÏÀ» ½ÃµµÇÏ´Â ÀÔÃâ·Â ¿ÀÆÛ·¹ÀÌ ¼ÇÀ» ÁöÀûÇϴµ¥ »ç¿ëÇϰí EAGAINÀº ¿¡·¯ÀÇ ´Ù¸¥Á¾·ù¿¡ »ç¿ëÇß´Ù
¸ÅÅ©·Î int EINPROGRESS
ºñºí·ÏÈ ¸ðµå·Î ¼±ÅÃµÈ ´ë»ó¿¡ ÀÏÀ¸Å² ¿ÏÀüÇÏÁö ¾ÊÀº ¿ÀÆÛ·¹À̼ǿ¡ ´ëÇØ ¹ß»ý. ¾î¶² ÇÔ¼öµéÀº Ç× »ó, ºí·ÏÀ»( connectó·³ ; 11.8.1ÀýÀÇ [¿¬°á]À» ÂüÁ¶) °áÄÚ ¸®ÅÏÇÏÁö ¾Ê¾Æ¾ßÇÑ´Ù.
EWOULDBLOCK ´ë½Å¿¡ ±×µéÀº ¾î¶² ½Ã°£À» ÃëÇϰí( Áï ÀÏÁ¤ ½Ã°£ÀÌ Áö³ÈÄ) ½ÃÀ۵Ǵ ¿ÀÆÛ·¹ÀÌ ¼ÇÀ» ÁöÀûÇϱâ À§ÇØ EINPROGRESS¸¦ ¸®ÅÏÇÑ´Ù. ±× È£Ãâ¿¡ EALREADY°¡ ¸®ÅÏµÇ¾î ¿ÏÀüÇϱâ Àü¿¡ ±× ´ë»óÀ» ´Ù·ç·Á ½ÃµµÇÒ ¶§.
¸ÅÅ©·Î int EALREADY
ÇÑ ¿ÀÆÛ·¹À̼ÇÀÌ ºñºí·°È ¸ðµåÀÇ ¼±ÅÃÀ» °¡Áø ´ë»ó¿¡ ÀÌ¹Ì ÁøÇàÁßÀÌ´Ù.
¸ÅÅ©·Î int EALREADY
¼ÒÄÏÀ» ¿äûÇßÀ» ¶§ ÁöÁ¤µÈ ¼ÒÄÏÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î int EDESTADDRREQ
¸ñÀû ÁÖ¼Ò°¡ ±×°ÍÀÌ ÇÊ¿äÇÑ ¼ÒÄÏ ¿ÀÆÛ·¹À̼ǿ¡ °ø±ÞµÉ¼ö ¾ø´Ù.
¸ÅÅ©·Î int EMSGSIZE
¼ÒÄÏ¿¡ º¸³½ ¸Þ½ÃÁöÀÇ Å©±â°¡ Áö¿øµÇ´Â ÃÖ´ë Å©±âº¸´Ù Å©´Ù.
¸ÅÅ©·Î int EPROTOTYPE
±× ¼ÒÄÏ Å¸ÀÔÀÌ ¿äûµÈ Åë½Å ÇÁ·ÎÅäÄÝ¿¡¼ Áö¿øÇÏÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î int ENOPROTOOPT
´ç½ÅÀº ¼ÒÄÏ¿¡ ÀÇÇØ »ç¿ëµÇ¾îÁö°í Àִ Ưº°ÇÑ ÇÁ·ÎÅäÄÝ¿¡¼ ÀÌÇØÇÒ¼ö ¾ø´Â ¼ÒÄϿɼÇÀ» ÁöÁ¤ÇÏ¿´´Ù. ( 11.11ÀýÀÇ [Socket Options]¸¦ ÂüÁ¶)
¸ÅÅ©·Î int EPROTONOSUPPORT
±× ¼ÒÄÏ µµ¸ÞÀÎÀº ¿äûÇÑ Åë½Å ÇÁ·ÎÅäÄÝÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ( ¾Æ¸¶µµ ¿äûµÈ ÇÁ·ÎÅäÄÝÀÌ ¿ÏÀüÈ÷ ºÎ ÀûÇÕÇÏ´Ù.) 11.7.1ÀýÀÇ [Creating a Socket]¸¦ º¸¶ó.
¸ÅÅ©·Î int ESOCKTNOSUPPORT
±× ¼ÒÄÏŸÀÔÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î int EOPNOTSUPP
´ç½ÅÀÌ ¿äûÇÑ ±× ¿ÀÆÛ·¹À̼ÇÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ¾î¶² ¼ÒÄÏÇÔ¼ö´Â ¼ÒÄÏÀÇ ¸ðµç ŸÀԵ鿡¼ ÀÌÇØÇÒ ¼ö ¾ø°í ´Ù¸¥°ÍµéÀº ¸ðµç Åë½Å ÇÁ·ÎÅäÄÝÀ» ÃæÁ·½ÃŰÁö ¸øÇÒ °ÍÀÌ´Ù.
¸ÅÅ©·Î int EPFNOSUPPORT
´ç½ÅÀÌ ¿äûÇÑ ¼ÒÄÏÅë½Å ÇÁ·ÎÅäÄÝ ºÎ·ùµéÀº Áö¿øÇÏÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î int EAFNOSUPPORT
¼ÒÄÏÀ» À§ÇÏ¿© ÁöÁ¤µÈ ÁÖ¼ÒÀÇ ºÎ·ùµéÀÌ Áö¿øµÇÁö ¾Ê´Â´Ù; ±× ÁÖ¼Ò°¡ ¼ÒÄÏ¿¡¼ »ç¿ëµÇ´Â ÇÁ·ÎÅäÄݰú ÀÏÄ¡ÇÏÁö ¾Ê´Â °ÍÀÌ´Ù. 11Àå[Sockets]ÀÇ 149ÆäÀÌÁö¸¦ ÂüÁ¶Ç϶ó.
¸ÅÅ©·Î int EADDRINUSE
¿äûµÈ ¼ÒÄÏÁÖ¼Ò°¡ ÀÌ¹Ì »ç¿ëÁßÀÌ´Ù. 11.3Àý [Socket Addresses] 150ÆäÀÌÁö¸¦ º¸¶ó.
¸ÅÅ©·Î int EADDRNOTAVAIL
¿äûµÈ ¼ÒÄÏÁÖ¼Ò°¡ À¯¿ëÇÏÁö ¾Ê´Ù.; ¿¹¸¦ µé¾î ´ç½ÅÀÌ ¼ÒÄÏÀ̸§À¸·Î ÁÖ·Á°í ½ÃµµÇÑ °ÍÀÌ ·ÎÄà ȣ½º Æ® À̸§°ú ¸ÂÁö ¾Ê´Ù. 11.3Àý[Socket Address]¸¦ º¸¶ó.
¸ÅÅ©·Î int ENETDOWN
¼ÒÄÏ ¿ÀÆÛ·¹À̼ÇÀÌ ³×Å©¿÷ ´Ù¿îÀÌ ÀÌÀ¯°¡ µÇ¾î ½ÇÆÐÇß´Ù.
¸ÅÅ©·Î int ENETUNREACH
¼ÒÄÏ ¿ÀÆÛ·¹À̼ÇÀÌ È£½ºÆ®°¡ Æ÷ÇÔÇϰí ÀÖ´Â subnet¿¡ µµ´ÞÇÒ¼ö ¾ø¾î¼ ½ÇÆÐÇß´Ù.
¸ÅÅ©·Î int ENETRESET
¿ø°Ý È£½ºÆ®°¡ ÆÄ±«µÇ¾ú±â ¶§¹®¿¡ ³×Æ®¿÷ ¿¬°áÀ» ´Ù½Ã ÁöÁ¤ÇÑ´Ù.
¸ÅÅ©·Î int ECONNABORTED
³×Æ®¿÷ ¿¬°áÀÌ ½ÇÆÐÇÏ¿´´Ù. ³×Æ®¿÷ ¿¬°áÀÌ ´ÜÀýµÇ¾ú´Âµ¥ ±× ÀÌÀ¯´Â ¿ø°Ý ½Ã½ºÅÛÀÌ ÀçºÎÆÃÇϰųª ¾Æ ´Ï¸é º¹±¸ÇÒ¼ö ¾ø´Â ÇÁ·ÎÅäÄÝ À§¹ÝÀÎ °æ¿ìó·³ ·ÎÄà ȣ½ºÆ®ÀÇ Á¦¾î¸¦ ¹þ¾î³ °ÍÀÌ ÀÌÀ¯ÀÌ´Ù.
¸ÅÅ©·Î int ENOBUFS
ÀÔÃâ·Â ¿ÀÆÛ·¹À̼ÇÀ» À§ÇÑ Ä¿³ÎÀÇ ¹öÆÛµéÀÌ ¸ðµÎ »ç¿ëÁßÀÌ´Ù.
¸ÅÅ©·Î int EISCONN
´ç½ÅÀº ÀÌ¹Ì ¿¬°áµÈ ¼ÒÄÏÀ» ´Ù½Ã ¿¬°áÇÏ·Á ½ÃµµÇϰí ÀÖ´Ù. 11.8.1Àý[Connectings]¸¦ º¸¶ó.
¸ÅÅ©·Î int ENOTCONN
±× ¼ÒÄÏÀº ¾î´À°Í°úµµ ¿¬°áÇÒ¼ö ¾ø´Ù. ´ç½ÅÀÌ Ã¹Â°·Î µ¥ÀÌÅÍÀÇ ¸ñÀûÁö¸¦ Á¤ÇÏÁö ¾Ê°í ÇÑ ¼ÒÄÏÀ» ÅëÇØ µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ·Á ÇÒ ¶§ ÀÌ ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.
¸ÅÅ©·Î int ESHUTDOWN
±× ¼ÒÄÏÀº ÀÌ¹Ì Æó¼èµÇ¾ú´Ù.
¸ÅÅ©·Î int ETIMEDOUT
Á¤ÇØÁø ŸÀӾƿôÀ»(timeout) °®Àº ¼ÒÄÏ ¿ÀÆÛ·¹À̼ÇÀÌ Á¤ÇØÁø ½Ã°£ µ¿¾È ÀÀ´äÀ» ¹ÞÁö ¸øÇß´Ù.
¸ÅÅ©·Î int ECONNREFUSED
¿ø°Ý È£½ºÆ®°¡ ³×Æ®¿÷ ¿¬°á¿¡ ´ëÇÑ Çã¿ëÀ» °ÅÀýÇÏ¿´´Ù. (Ưº°È÷ ¿äûµÈ ¼ºñ½º°¡ ½ÇÇàµÇÁö ¾Ê±â ¶§ ¹®¿¡)
¸ÅÅ©·Î int ELOOP
ÆÄÀÏÀ̸§À» Ž»öÇÏ·Á´Âµ¥ ³Ê¹« ¸¹Àº ¼öÁØÀÇ ±âÈ£¿¬°á(sysbolic links)ÀÌ ÀÖ´Ù. À̰ÍÀº Á¾Á¾ ±âÈ£¿¬°á ÀÇ ÇÑ Áֱ⸦ °¡¸®Å²´Ù.
Âü°í·Î sysbolic links´Â µ¥ÀÌÅͺ£À̽º ÇÁ·Î±×·¥°ú ½ºÇÁ·¹µå ½ÃÆ® µî°ú °°Àº ÇÁ·Î±×·¥µé »çÀÌ¿¡¼ »óÈ£ °£ÀÇ ¿øÈ°ÇÑ µ¥ÀÌÅÍ ±³È¯À» À§ÇØ »ç¿ëµÇ´Â µ¥ÀÌÅÍ ÆÄÀÏÀÇ Çü½ÄÀÌ·¡¿ä.
¸ÅÅ©·Î int ENANETOOLONG
ÆÄÀÏ À̸§ÀÌ ³Ê¹« ±æ°Å³ª( PATH_MAXº¸´Ù ´õ; 27.6Àý [Limits for Files] 374 ÆäÀÌÁö¸¦ ÂüÁ¶Ç϶ó) È£½ºÆ® À̸§ÀÌ ³Ê¹« ±æ´Ù.( gethostname À̳ª sethostname¿¡ ÀÖ´Â; 26.1Àý [Host Identification] 367 ÆäÀÌÁö¸¦ ÂüÁ¶)
¸ÅÅ©·Î int EHOSTDOWN
¿äûµÈ ³×Æ®¿÷ ¿¬°áÀ» À§ÇÑ ¿ø°Ý È£½ºÆ®°¡ ´Ù¿îÀÌ´Ù.
¸ÅÅ©·Î int EHOSTUNREACH
¿äûµÈ ³×Æ®¿÷ ¿¬°áÀ» À§ÇÑ ¿ø°Ý È£½ºÆ®¿¡ µµ´ÞÇÒ¼ö ¾ø´Ù.
¸ÅÅ©·Î int ENOTEMPTY
ºó µð·ºÅ丮¶ó°í ¿¹»óÇß´ø °÷ÀÌ ºñ¾îÀÖÁö ¾Ê´Ù. Ưº°È÷ ÀÌ ¿¡·¯´Â ´ç½ÅÀÌ µð·ºÅ丮¸¦ Áö¿ì·Á ½Ãµµ ÇÒ ¶§ ¹ß»ýÇÑ´Ù.
¸ÅÅ©·Î int EUSERS
ÆÄÀÏÇÒ´ç ½Ã½ºÅÛÀÌ ³Ê¹« ¸¹Àº À¯Àú·Î ÀÎÇØ È¥¶õÇÏ´Ù.
¸ÅÅ©·Î int EDQUOT
»ç¿ëÀÚÀÇ µð½ºÅ© ÇÒ´çÀÌ ÃʰúµÇ¾ú´Ù.
¸ÅÅ©·Î int ESTALE
¸ÀÀ̰£ NFS ÆÄÀÏ ÇÚµé. À̰ÍÀº ÆÄÀÏ ½Ã½ºÅÛÀÌ ¼¹ö È£½ºÆ® »ó¿¡¼ ÀçÁ¤¿ÇѰͿ¡ ±âÀÎÇÑ °ÍÀ¸·Î NFS ½Ã½ºÅÛ¾ÈÀÇ ³»ºÎÀû È¥¶õÀ» ÁöÀûÇÑ´Ù.
¸ÅÅ©·Î int ERENOTE
ÀÌ¹Ì NFS ¸¶¿îÆ® ÆÄÀÏ·Î ÁöÁ¤µÈ ÇÑ ÆÄÀÏÀ» ÇÑ ¿ø°Ý ÆÄÀÏ ½Ã½ºÅÛÀÌ NFS ¸¶¿îÆ®·Î ¸¸µé·Á ½ÃµµÇÒ ¶§ ¹ß»ý. (À̰ÍÀº ¿î¿µÃ¼Á¦»óÀÇ ¿¡·¯ÀÌÁö¸¸ ¿ì¸®´Â ÀÌ ¿¡·¯¸¦ ºÒ°¡´ÉÇÑ ÄÚµå·Î ¸¸µé°í GNU½Ã½ºÅÛ»ó
¿¡¼ ÀÛ¾÷Çϱ⸦ ±â´ëÇÏ´Â °ÍÀÌ´Ù.)
¸ÅÅ©·Î int ENOLCK
À¯¿ëÇÑ ¶ôÀÌ ¾Æ´Ï´Ù. À̰ÍÀº ÆÄÀÏ ¶ôÅ· ÇÔ¼öµé¿¡ ÀÇÇØ »ç¿ëµÈ´Ù. 8.11Àý [File Locks] 118ÆäÀÌÁö¸¦ º¸¶ó. ÀÌ ¿¡·¯´Â GNU ½Ã½ºÅÛ¿¡¼´Â °áÄÚ ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
¸ÅÅ©·Î int ENOSYS
ÇÔ¼ö°¡ ÀÌÇàµÇÁö ¾Ê¾Ò´Ù. ¾î¶² ÇÔ¼öµéÀº Á¤ÀÇµÈ ¿É¼ÇÀ̳ª ¸í·ÉµéÀÌ ¾î¶²°Í¿¡¼µµ Áö¿øµÇÁö ¾Ê´Â °ÍÀÌ ÀÖ´Ù. ¸¸¾à ´ç½ÅÀÌ ¿äûÇÑ ÇÔ¼ö¿¡¼ ÀÌ·± ¿¡·¯¸¦ ¾ò´Â´Ù¸é ±×°ÍµéÀº Áö¿øµÇÁö ¾Ê´Â °ÍÀÌ´Ù.
¸ÅÅ©·Î int EBACKGROUND
GNU ½Ã½ºÅÛ¿¡¼ ¾î¶² ¿ÀÆÛ·¹À̼ÇÀÇ È£ÃâÀÚ°¡ Å͹̳¯ÀÇ Àü¸éó¸® ±×·ì¿¡ ¾øÀ» ¶§ ¼¹öÁö¿ø ÇÁ·ÎÅä ÄÝ¿¡ ÀÌ ¿¡·¯°¡ ¸®ÅϵȴÙ. »ç¿ëÀÚµéÀº º¸Åë ÀÌ ¿¡·¯¸¦ º¸Áö ¸øÇϴµ¥ ¿Ö³ÄÇϸé ÇÔ¼öµéÀº SIGTTIN
À̳ª SIGTTOU½ÅÈ£·Î ÇØ¼®ÇÏ¿© ÀÐ°í ¾²±â ¶§¹®ÀÌ´Ù. 24Àå[Job Control] 335ÆäÀÌÁö¸¦ ÇÁ·Î¼¼½º ±× ·ì°ú À̵éÀº ½ÅÈ£ÀÇ Á¤º¸¸¦ À§ÇØ º¸¶ó.
¸ÅÅ©·Î int ED
°æÇèÀÖ´Â »ç¿ëÀÚ´Â ¹«¾ùÀÌ À߸øÀÎÁö ¾Ë °ÍÀÌ´Ù.
¸ÅÅ©·Î int EGREGIOUS
´ç½ÅÀÌ ¹«¾ùÀ» ÇßÁö?
¸ÅÅ©·Î int EIEIO
Áý¿¡°¡¼ µû¶æÇϰí, ½Å¼±ÇÑ ÇÑÀÜÀÇ ¿ìÀ¯¸¦ ¸¶¼Å¶ó
¸ÅÅ©·Î int EGRATUITOUS
ÀÌ ¿¡·¯ ÄÚµå´Â ¸ñÀûÀÌ ¾ø´Ù.
2.3.¿¡·¯ ¸Þ¼¼Áö
¶óÀ̺귯¸®¿¡´Â ´ç½ÅÀÇ ÇÁ·Î±×·¥ÀÌ ¶óÀ̺귯¸®¸¦ È£ÃâÇÏ´Ù°¡ ½ÇÆÐÇÒ ¶§¿¡ ÈçÈ÷ ÀϾ´Â ¿¡·¯¸¦ ¸Þ¼¼Áö·Î º¸³¾ ¼ö ÀÖµµ·ÏÇÏ´Â ÇÔ¼ö¿Í º¯¼öµéÀÌ ÀÖ´Ù. ÇÔ¼ö strerror°ú perrorÀº ƯÁ¤ÇÑ ¿¡·¯ÄÚµå·Î Á¤ÇüÈµÈ ¿¡·¯¸Þ¼¼Áö¸¦ º¸³½´Ù; º¯¼ö program_invocation_short_nameÀº ¿¡·¯°¡ ³ ÇÁ·Î±×·¥ÀÇ ¸í ĪÀ» ½±°Ô ãµµ·Ï ÇØÁØ´Ù.
ÇÔ¼ö char * strerror (int errnum)
strerror ÇÔ¼ö´Â Àμö errnumÀ» ¹Þ¾Æ¼ ¿¡·¯ÄÚµå(2.1 [¿¡·¯ üũ] ÂüÁ¶)¸¦ ¹®ÀÚ¿À» ±â¼úÇÑ ¿¡·¯¸Þ¼¼ Áö·Î ±×·Á³½´Ù. ¸®ÅϰªÀº ÀÌ ¹®ÀÚ¿ÀÇ Æ÷ÀÎÅÍÀÌ´Ù. Àμö errnumÀÇ °ªÀº º¸Åë º¯¼ö errno¿¡¼ Àü´ÞµÈ ´Ù.
´ç½ÅÀº ÇÔ¼ö strerrorÀÌ ¹ÝȯÇÑ ¹®ÀÚ¿À» º¯Çü½ÃÄѼ´Â ¾ÈµÈ´Ù. ¶ÇÇÑ,¸¸¾à ´ç½ÅÀÌ strerrorÀ» °è¼Ó È£ ÃâÇÏ°Ô µÇ¸é,±× ¹®ÀÚ¿Àº µ¡¾º¿öÁú °ÍÀÌ´Ù. (±×·¯³ª ¾î¶°ÇÑ ¶óÀ̺귯¸® ÇÔ¼öµµ ´ç½ÅÀÌ ¾ËÁö ¸øÇÏ°Ô strerrorÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾ÊÀ½Àº ¹Ï¾îµµ ÁÁ´Ù.)
ÇÔ¼ö strerrorÀº Çì´õÆÄÀÏ 'string.h'¿¡ ¼±¾ðµÇ¾î ÀÖ´Ù.
ÇÔ¼ö void perror (const char *message)
ÀÌ ÇÔ¼ö´Â ¿¡·¯¸Þ¼¼Áö¸¦ ¹®ÀÚ¿ stderr¿¡ ±â·ÏÇÑ´Ù; 7.2 [Ç¥ÁØ ¹®ÀÚ¿], 63Á· ÂüÁ¶. ¸¸¾à¿¡ ³Î(null) Æ÷ ÀÎÅͶóµçÁö °ø¹é ¹®ÀÚ¿ÀÎ message¸¦ ½á¼ perror¸¦ È£ÃâÇÏ°Ô µÇ¸é, perror´Â errno¿¡ ÇØ´çÇÏ´Â ¿¡ ·¯¸Þ¼¼Áö¸¦ ±â·ÏÇϰí,µÚ¿¡ »õ·Î¿î ÇàÀ» Ãß°¡ÇÑ´Ù. ±×·¸Áö¾Ê°í ³Î(null)ÀÌ ¾Æ´Ñ Àμö message¸¦ ¾²°Ô µÇ¸é,perror´Â ¿¡·¯¸Þ¼¼Áö ¾Õ¿¡ ÇØ´ç ¹®ÀÚ¿À» °®´ÙµÐ´Ù. °Å±â¿¡´Â errno¿¡ ÇØ´çÇÏ´Â ¿¡·¯¹®ÀÚ¿·ÎºÎ ÅÍ ¸Þ¼¼Áö¸¦ ºÐ¸®Çϱâ À§Çؼ ÄÝ·Ð(:)°ú °ø¹é¹®ÀÚ¸¦ Ãß°¡ÇÑ´Ù. ÇÔ¼ö perror´Â 'stdio.h'¿¡ ¼±¾ðµÇ¾î ÀÖ ´Ù.
strerror¿Í perror´Â ¾î¶² ¿¡·¯Äڵ尡 ÁÖ¾îÁöµçÁö °£¿¡ °°Àº ¸Þ¼¼Áö¸¦ ¸¸µé¾î³½´Ù; ±ÔÁ¤µÈ ÅØ½ºÆ® ´Â ½Ã½ºÅÛ¿¡ µû¶ó º¯ÇÑ´Ù. GNU üÁ¦¿¡¼´Â ¸Þ¼¼Áö°¡ ¾ÆÁÖ Âª´Ù; µÎÁÙÀÌ»óÀÇ ¸Þ¼¼Áö³ª »ðÀÔµÈ ÁÙÀº ¾Æ¿¹ ¾ø´Ù.°¢ ¿¡·¯¸Þ¼¼Áö´Â ´ë¹®ÀÚ·Î ½ÃÀÛÇÏ¸ç ±¸µÎÁ¡Àº ¾²Áö ¾Ê´Â´Ù.
ȣȯ¼º ³ë¿ìÆ® : ÇÔ¼ö strerror´Â ANSI CÀÇ »õ·Î¿î Ư¼ºÀÌ´Ù. °ú°ÅÀÇ ¸¹Àº C¾ð¾î üÁ¦¿¡¼´Â ÀÌ ÇÔ ¼ö°¡ Á¦°øµÇÁö ¾Ê¾Ò´Ù. Å͹̳ηκÎÅÍ ÀÔ·ÂÀ» ÀоîµéÀÌÁö ¾Ê´Â ¸¹Àº ÇÁ·Î±×·¥µéÀº ¾î¶² ½Ã½ºÅÛ È£ ÃâÀÌ ½ÇÆÐÇÏ°Ô µÇ¸é Á¾·áµÇµµ·Ï ¸¸µé¾îÁ® ÀÖ´Ù. ÀüÅëÀûÀ¸·Î, ±×¿Í°°Àº ÇÁ·Î±×·¥À¸·ÎºÎÅÍ ³ª¿À´Â ¿¡·¯¸Þ¼¼Áö´Â µð·ºÅ丮´Â ±â¼úÇÏÁö ¾Ê°í ±× ÇÁ·Î±×·¥ÀÇ ¸íΏ¸À¸·Î ½ÃÀÛÇÑ´Ù. ´ç½ÅÀº ±× ¸íĪÀ» º¯¼ö program_invocation_short_name¿¡¼ ã¾Æº¼ ¼ö ÀÖ´Ù; ¿ÏÀüÇÑ ÆÄÀÏ ¸íĪÀº º¯¼ö program_invocation_name¿¡ ÀúÀåµÈ´Ù:
º¯¼ö char *program_invocation_name;
ÀÌ º¯¼öÀÇ °ªÀº ÇöÀç ÁøÇàÁßÀÎ ÇÁ·Î±×·¥ ½ÇÇàÀ» ½ÃÀÛÇϴµ¥ »ç¿ëµÇ´Â ¸íĪÀÌ´Ù. ±×°ÍÀº argv[0]¿Í µ¿ÀÏÇÏ´Ù. À̰ÍÀÌ ¹Ýµå½Ã À¯È¿ÇÑ ÆÄÀϸíĪÀ» ÇÊ¿ä·Î ÇÏ´Â °ÍÀÌ ¾Æ´ÔÀ» ÁÖÀÇÇ϶ó; ÈçÈ÷ À¯È¿ÇÑ ÆÄÀÏ ¸íĪÀº µð·ºÅ丮 ¸íĪÀ» ´ã°íÀÖÁö ¾Ê´Ù. 22.1 [ÇÁ·Î±×·¥ Àμö], 311ÂÊ ÂüÁ¶.
º¯¼ö char * program__invocation__short__name
ÀÌ º¯¼öÀÇ °ªÀº ÇöÀç ó¸®ÁßÀÎ ÇÁ·Î±×·¥À» ºÎ¸£´Â µ¥ »ç¿ëµÇ´Â ¸íĪÀ¸·Î¼ µð·ºÅ丮 ¸íĪÀÌ Á¦°Å µÈ °ÍÀÌ´Ù.(¸»ÇÏÀÚ¸é,À̰ÍÀº program_invocation_name¿¡¼ ¸¶Áö¸· ½½·¡½¬±îÁö¸¦ »©¹ö¸° °Í°ú µ¿ÀÏ ÇÏ´Ù.)
¶óÀ̺귯¸® ÃʱâÈ ÄÚµå´Â ¸ÞÀÎÀ» È£ÃâÇϱâ Àü¿¡ ÀÌ µÎ °³ÀÇ º¯¼ö¸¦ ±¸Ãà(ϰõé)ÇÑ´Ù.
¿î¿ë ³ë¿ìÆ® : ÀÌ µÎ°³ÀÇ º¯¼ö´Â GNUÀÇ È®ÀåÀÌ´Ù. ¸¸ÀÏ ´ç½ÅÀÌ GNU ÀÌ¿ÜÀÇ ¶óÀ̺귯¸®¸¦ ¾²°í ½ÍÀ¸ ¸é,¸ÞÀÎ ÇÔ¼ö¿¡¼ argv[0]ÀÇ °ªÀ» ÀúÀåÇÑ ´ÙÀ½¿¡ ´ç½ÅÀÌ ¼Õ¼ö µð·ºÅ丮ÀÇ ¸íĪÀ» Á¦°ÅÇÏ¸é µÈ´Ù. ¿ì¸®´Â ¸ÞÀÎ ÇÔ¼ö¿¡¼ ¸í½ÃÀûÀΠǥÇöÀ» ÇÏÁö ¾Ê°í¼ ±× ÀÚü¿¡¼ ¿¡·¯ º¸°í¿ë ¼ºê·çƾÀ» ´ã°í ÀÖ µµ·Ï Çϱâ À§ÇÏ¿© À̿Ͱ°Àº È®ÀåÀ» ÇÏ°Ô µÇ¾ú´ø °ÍÀÌ´Ù.
ÆÄÀÏÀ» Á¦´ë·Î ¿Áö ¸øÇÏ°í ½ÇÆÐ¸¦ ÇÏ°Ô µÇ´Â ¿¹¸¦ µé¾î º¸±â·Î ÇÏÀÚ. ÇÔ¼ö open_sesameÀº Àбâ¸ð µå·Î ÁÖ¾îÁø ÆÄÀÏÀ» ¿°í ¼º°øÇÏ¸é ¹®ÀÚ¿À» ¹ÝȯÇÑ´Ù. ¶óÀ̺귯¸® ÇÔ¼ö fopenÀº ÆÄÀÏÀ» ¿ ¼ö ¾øÀ» ¶§ ³Î(null) Æ÷ÀÎÅ͸¦ ¹ÝȯÇÑ´Ù.À̰°Àº »óȲ¿¡¼,open_sesameÀº ÇÔ¼ö strerrorÀ» »ç¿ëÇÏ´Â ÀûÀýÇÑ ¿¡·¯ ¸Þ¼¼Áö¸¦ ¸¸µé¾î³»°í¼ ÇÁ·Î±×·¥À» Á¾·áÇÑ´Ù. ¸¸¾à ¿ì¸®°¡ strerror¿¡ ¿¡·¯ Äڵ带 º¸³»±â Àü ¿¡ ´Ù¸¥ ¾î¶² ¶óÀ̺귯¸®¸¦ È£ÃâÇϰíÀÚ ÇÑ´Ù¸é,¿ì¸®´Â ±×°ÍÀ» Áö¿ª º¯¼ö¿¡ ÀúÀåÇÏ¿©¾ß¸¸ ÇÑ´Ù.¿Ö³Ä Çϸé, ±× ´Ù¸¥ ¾î¶² ¶óÀ̺귯¸® ÇÔ¼öµéÀÌ µ¿½Ã¿¡ errno¸¦ µ¡¾º¿ï °ÍÀ̱⠶§¹®ÀÌ´Ù.
/* À½,..¿¹Á¦¸¦ ¸¸³µ±º¿ä..ÈåÈå*/
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*Çì´õÆÄÀÏÀ» Æ÷ÇÔ½ÃŰ´Â °Ç ³ªµÎ ¾Ë°Ú±º*/
/*À¸À½..ÇÔ¼öÀÇ ÇüÅ·ΠFILEÀ» ¼±ÅÃÇÒ ¼öµµ ÀÖ¾ú±º*/
FILE * open_sesame (char *name)
/*¿ä°Ç Àμö·Î ¹®ÀÚÇü Æ÷ÀÎÅ͸¦*/
{
FILE *stream;
/*¿ìÀ×? ÀÌ°Ç ÆÄÀϸíĪÀÌ Æ÷ÀÎÅÍ·Î? ÈåÈåÈå..±³°ú¼ÀûÀÎ ³»¿ë*/
errno = 0;
/*¿ä°Ç ¹º°¡ ÀÌ»óŸ? errno¸¦ int¶ó°í ¼±¾ðÇÏÁö ¾Ê¾ÆµÎ µÇ³²?*/
stream = fopen (name, "r");
/*ÆÄÀÏÀ» Àб⠸ðµå·Î ¿±¸*/
if (stream == NULL)
/*ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é?*/
{
fprintf (stderr, "%s: Couldn't open file %s;
%s\n",program_invocation_short_name, name,
strerror (errno));
/*¾Æ¾Æ! fprintf ÇÔ¼ö´Â (1) ¹«¾ùÀ» (2)¾îµð¿¡¼ ÀÐ¾î¼ (3)¾îµò°¡¿¡ ¾²´Â °Í 3ºÎºÐÀ¸·Î ±¸¼ºµÇ³×¿ä! ÀÌ ¸öÀº ÀÌ·± °Ç ¿Ü¿ï ¼ö°¡ ¾ö¼¿©==°Ç¸ÁÁõ==ÇÁ·Î±×·¥ Â¥´Ù°¡ ÇÊ¿äÇÏ¸é ±×¶§ º¸Áö¿ä*/
exit (EXIT_FAILURE);
/*³ exit¿Í returnÀÇ Â÷À̵Π¸ô·¯,Èæ*/
}
else
/*ÆÄÀÏÀÌ Á¸ÀçÇϸé?*/
return stream;
}