26. ½Ã½ºÅÛ Á¤º¸
ÀÌ ÀåÀº »ç¿ëÇϰí Àִ ƯÁ¤ÇÑ ±â°è_Áï Çϵå¿þ¾îÀÇ Å¸ÀÔ, ¼ÒÇÁÆ®¿þ¾îÀÇ Å¸ÀÔ, ±×¸®°í °³º°ÀûÀÎ ±â°è µéÀÇ À̸§_¿¡ ´ëÇÑ Á¤º¸¸¦ ¸®ÅÏÇÏ´Â ÇÔ¼ö¸¦ ¼³¸íÇÑ´Ù.
26.1 È£½ºÆ® È®ÀÎ.
ÀÌ ÀýÀº ´ç½ÅÀÇ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ°í Àִ ƯÁ¤ÇÑ ±â°è(machine)¸¦ ¾î¶»°Ô È®ÀÎÇÒ°ÍÀÎÁö¸¦ ¼³¸íÇÏ °í ÀÖ´Ù. ±â°èÀÇ ±¸ºÐÀº ÀÎÅÍ³Ý È£½ºÆ® À̸§(Internet host name) °ú ÀÎÅÍ³Ý ÁÖ¼Ò(Internet address) ·Î ÇÑ´Ù; 11.5Àý [Internet Namespace] 155 ÆäÀÌÁö ÂüÁ¶. ±× ÇÔ¼öµé¿¡ ´ëÇÑ ÇÁ·ÎÅäŸÀÔÀº `unistd.h' ¿¡ ³ª¿ÍÀÖ´Ù. ½© ¸í·É¾î hostname°ú hostid´Â ±×µéÀ» È£ÃâÇÏ¿© ÀÛ¾÷À» ¼öÇàÇÑ´Ù.
ÇÔ¼ö : int gethostname (char *name, size_t size)
ÀÌ ÇÔ¼ö´Â ¹è¿ name¿¡ È£½ºÆ® ±â°èÀÇ À̸§À» ¸®ÅÏÇÑ´Ù. sizeÀμö´Â ÀÌ ¹è¿ÀÇ Å©±â¸¦ ¹ÙÀÌÆ® ´ÜÀ§ ·Î ÁöÁ¤ÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ¼º°øÇϸé 0À» ¸®ÅÏÇϰí, ½ÇÆÐÇϸé -1À» ¸®ÅÏÇÑ´Ù. GNU C ¶óÀ̺귯¸®¿¡ ¼, gethostnameÀº ¸¸ÀÏ size Àμö°¡ ÃæºÐÈ÷ Å©Áö ¾Ê´Ù¸é ½ÇÆÐÇϱ⠶§¹®¿¡ ±× °æ¿ì¿¡´Â ±× ¹è¿À» Å©°ÔÇØ¼ ´Ù½Ã ±× ÇÔ¼ö¸¦ È£ÃâÇ϶ó. ´ÙÀ½ÀÇ errno´Â ÀÌ ÇÔ¼ö¸¦ À§ÇØ Á¤ÀÇµÈ ¿¡·¯»óȲÀÌ´Ù.
ENAMETOOLONG
size Àμö°¡ È£½ºÆ® À̸§¿¡´Ù 1À» ´õÇÑ Å©±âº¸´Ù ÀÛ´Ù. ¾î¶² ½Ã½ºÅÛ¿¡¼´Â, ÃÖ´ë °¡´ÉÇÑ È£½ºÆ® À̸§ ÀÇ ±æÀ̰¡ ½Éº¼ MAXHOSTNAMELEN À¸·Î Á¤ÇØÁ®ÀÖ´Ù. ±×°ÍÀº `sys/param.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù. ±×°Í¿¡ ¸ÂÁö¾Ê´Â´Ù¸é ½ÇÆÐ·Î ó¸®ÇÏ°í ´Ù½Ã ½ÃµµÇ϶ó.
gethostnameÀº ¸¸ÀÏ È£Æ®½º À̸§ÀÇ ±æÀ̰¡ ±æ¾î¼ ©¸°´Ù°í ÇÏ´õ¶óµµ È£½ºÆ®À̸§À» name¿¡ ÀúÀåÇÏ °í ±×°ÍÀ» °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÑ´Ù. ¾î¶²¶§´Â Àß·ÁÁø È£½ºÆ®À̸§À¸·Îµµ ÃæºÐÇÒ ¶§°¡ÀÖ´Ù. ¸¸ÀÏ ±×·¸´Ù¸é, ±×¶§ ¹ß»ýÇÑ ¿¡·¯ÄÚµå´Â ¹«½ÃÇÒ ¼ö ÀÖ´Ù.
ÇÔ¼ö : int sethostname (const char *name, size_t length)
sethostname ÇÔ¼ö´Â lengthÀÇ ±æÀ̸¦ °¡Áø ¹®ÀÚ¿ nameÀ¸·Î È£½ºÆ® ±â°èÀÇ À̸§À» ¼³Á¤ÇÑ´Ù. ¿ÀÁ÷ Ư±ÇÀ» °¡Áø ÇÁ·Î¼¼½º¸¸ÀÌ ÀÌ ÀÏÀ» Çϵµ·Ï Çã¶ôµÈ´Ù. º¸Åë ½Ã½ºÅÛÀÌ ºÎÆÃÇÒ¶§ µü ÇÑ ¹ø ¹ß»ýÇÑ´Ù. ¼º°øÇÏ¸é ¸®ÅϰªÀº 0ÀÌ°í ½ÇÆÐÇϸé -1ÀÌ´Ù. ´ÙÀ½ÀÇ errno´Â ÀÌÇÔ¼ö¸¦ À§ÇØ Á¤ÀÇµÈ ¿¡·¯»óȲÀÌ´Ù.
EPERM
ÀÌ ÇÁ·Î¼¼½º´Â Ư±ÇÀÌ ¾ø±â ¶§¹®¿¡ È£½ºÆ®À̸§À» ¼³Á¤ÇÒ ¼ö ¾ø´Ù.
ÇÔ¼ö : long int gethostid (void)
ÀÌ ÇÔ¼ö´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ°í ÀÖ´Â ±â°èÀÇ "È£½ºÆ® ID"¸¦ ¸®ÅÏÇÑ´Ù. °ü·ÊÀûÀ¸·Î, ¸®ÅϵǴ ȣ½ºÆ® ID´Â º¸Åë ±â°èÀÇ ÁÖ¿äÇÑ(primary) ÀÎÅÍ³Ý Áּҷνá, long int·Î º¯È¯µÈ °ÍÀÌ´Ù. ±×·¯³ª ¾î¶²±â°è¿¡ ¼´Â °¢°¢ÀÇ ±â°è¿¡ ºÒº¯ÀÎ(hard-coded) ´ÜÀÏÇÑ ¹øÈ£·Î Àǹ̰¡ ¾ø´Ù.
ÇÔ¼ö : int sethostid (long int id)
sethostid ÇÔ¼ö´Â id·Î È£½ºÆ® ±â°èÀÇ "È£½ºÆ® ID"¸¦ ¼³Á¤ÇÑ´Ù. ¿ÀÁ÷ Ư±ÇÀ» °¡Áø ÇÁ·Î¼¼½º¸¸ÀÌ ÀÌ·¯ ÇÑÀÏÀ» Çϵµ·Ï Çã¿ëµÈ´Ù. º¸Åë ±×°ÍÀº ½Ã½ºÅÛÀÌ ºÎÆÃµÉ ¶§, µü ÇÑ ¹ø ¹ß»ýÇÑ´Ù. ¼º°øÇÏ¸é ¸®ÅϰªÀº 0 ÀÌ°í ½ÇÆÐÇϸé -1ÀÌ´Ù. ´ÙÀ½ÀÇ errno´Â ÀÌ ÇÔ¼ö¸¦ À§ÇØ Á¤ÀÇµÈ ¿¡·¯»óȲÀÌ´Ù.
EPERM
ÀÌ ÇÁ·Î¼¼½º´Â Ư±ÇÀÌ ¾ø±â ¶§¹®¿¡ È£½ºÆ® À̸§À» ¼³Á¤ÇÒ ¼ö ¾ø´Ù.
ENOSYS
¿î¿µÃ¼Á¦°¡ È£½ºÆ® ID¸¦ ¼³Á¤ÇÏ´Â °ÍÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ¾î¶² ½Ã½ºÅÛ¿¡¼, È£½ºÆ® ID´Â ºÒº¯ÀÇ ´Ü ÀÏÇÑ ¼ýÀÚÀ̱⠶§¹®¿¡ Àǹ̰¡ ¾ø´Ù.
26.2 Çϵå¿þ¾î/¼ÒÇÁÆ®¿þ¾î ŸÀÔ È®ÀÎÇϱâ.
´ç½ÅÀº ´ç½ÅÀÇ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ°í ÀÖ´Â ÄÄÇ»ÅÍÀÇ Å¸ÀÔ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾ò±âÀ§Çؼ uname ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇÔ¼ö¿Í ±×°Í°ú ¿¬°üµÈ µ¥ÀÌÅÍŸÀÔÀº Çì´õÆÄÀÏ `sys/utsname.h'¿¡ ¼±¾ðµÇ¾î ÀÖ ´Ù.
µ¥ÀÌÅÍŸÀÔ : struct utsname
utsname ±¸Á¶Ã¼´Â uname ÇÔ¼ö¿¡ ÀÇÇØ ¸®ÅÏµÈ Á¤º¸¸¦ ÀúÀåÇϴµ¥ »ç¿ëµÈ´Ù. ´ÙÀ½°ú °°Àº ¸â¹öµéÀ» °®´Â´Ù.
char sysname[]
»ç¿ëÁßÀÎ ¿î¿µÃ¼Á¦ÀÇ À̸§ÀÌ´Ù.
char nodename[]
À̰ÍÀº ƯÁ¤ÇÑ ÄÄÇ»ÅÍÀÇ ³×Æ®¿÷ À̸§ÀÌ´Ù. GNU¶óÀ̺귯¸®¿¡¼, ÀÌ °ªÀº gethostname¿¡ ÀÇÇØ ¸®ÅÏµÈ °Í°ú °°Àº °ªÀÌ´Ù; 26.1Àý [Host Identification] 367 ÆäÀÌÁö ÂüÁ¶.
char release[]
À̰ÍÀº ¿î¿µÃ¼Á¦ÀÇ ÇöÀç °³Á¤ÆÇ ¹øÈ£ÀÌ´Ù.
char version[]
À̰ÍÀº ¿î¿µÃ¼Á¦ÀÇ ÇöÀç ¹öÀü(version) ÀÌ´Ù.
char machine[]
À̰ÍÀº »ç¿ëÁßÀÎ Çϵå¿þ¾î ŸÀÔ¿¡ ´ëÇÑ ¸í¼¼ÀÌ´Ù. ¾î¶² ½Ã½ºÅÛÀº ÀÌ Á¤º¸¸¦ Á÷Á¢ÀûÀ¸·Î Ä¿³Î·ÎºÎÅÍ ¾òÀ» ¼ö ÀÖ´Â ¸ÞÄ«´ÏÁòÀ» Á¦°øÇÑ´Ù. ÀÌ·¯ÇÑ ¸ÞÄ«´ÏÁòÀÌ ¾ø´Â ½Ã½ºÅÛ¿¡¼, GNU C ¶óÀ̺귯¸®´Â ±× ¶óÀ̺귯¸®°¡ ¸¸µé¾îÁö°í ÀνºÅç µÉ ¶§ Á¤ÇØÁø ÇüÅ¿¡ ±âÃÊÇÏ¿© ÀÌ Çʵ带 ä¿î´Ù. GNU ´Â ½Ã½ºÅÛ ±¸¼ºÀ» ¼³¸íÇϱâ À§Çؼ ¼¼-ºÎºÐÀ» »ç¿ëÇÑ´Ù; ¼¼ºÎºÐÀº Áß¾Óó¸®ÀåÄ¡, Á¦Á¶È¸»ç, ±×¸®°í ½Ã½ºÅÛ-ŸÀÔ À̰í, ±×µéÀº ´ë½¬·Î ±¸ºÐµÈ´Ù. ¾î¶²°æ¿ì¿¡ ±× ¼¼ºÎºÐÀÇ Á¶ÇÕµÈ Á¤º¸´Â À¯¿ëÇÏÁö¸¸, ´ëºÎºÐÀº ½ÇÁ¦ ÀûÀ¸·Î À¯¿ëÇÏÁö ¾Ê°í Çʿ䰡 ¾ø´Ù. ±â°è¿¡¼ ±× °ªÀÌ ´ÜÁö Çϵå¿þ¾î¿¡ ´ëÇÑ ¸í¼¼¸¸À» Áö¿øÇÑ´Ù¸é, ±×°ÍÀº µÎ °³ÀÇ ºÎºÐÀ¸·Î ÇüÅÂÀÇ À̸§ÀÌ ±¸¼ºµÈ´Ù.
¿¹¸¦µé¸é ´ÙÀ½°ú °°´Ù:
"sparc-sun", "i386-anything ", "m68k-hp", "m68k-sony", "m68k-sun", "mips-dec"
ÇÔ¼ö : int uname (struct utsname *info)
uname ÇÔ¼ö´Â info°¡ °¡¸®Å°°í ÀÖ´Â ±¸Á¶Ã¼¸¦ ¿î¿µÃ¼Á¦¿Í È£½ºÆ® ±â°è¿¡ ´ëÇÑ Á¤º¸·Î ä¿î´Ù. À½ÀÌ ¾Æ´Ñ°ªÀº ¼º°øÀûÀ¸·Î Á¤º¸°¡ ÀúÀåµÇ¾úÀ½À» ¾ê±âÇϰí -1Àº ½ÇÆÐÇÒ °æ¿ì ¸®ÅϵȴÙ. ¿ÀÁ÷ °¡´ÉÇÑ ¿¡·¯ ´Â EFAULT ¹Û¿¡ ¾ø´Âµ¥, ±× ¿¡·¯´Â Ç×»ó ¹ß»ý°¡´É¼ºÀÌ ÀÖ´Â °ÍÀ¸·Î½á °£´ÜÈ÷ ¾ê±âÇÒ ¼ö´Â ¾ø´Ù.