Ç¥ÁØ C¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÑ ¹®ÀÚ¿­ ´Ù·ç±â
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

C ¿¡¼­ÀÇ ¹®ÀÚ¿­

C´Â ¿øÄ¢ÀûÀ¸·Î ¹®ÀÚ¸¦ ¹®ÀÚ°´Ã¼·Î ´Ù·çÁö ¾Ê´Â´Ù. ¾Ö½Ã´çÃÊ ¹®ÀÚ¿­À̶õ°Ô Á¸ÀçÇÏÁö ¾ÊÀ¸¸ç, ¹è¿­·Î ´Ù·ê »ÓÀÌ´Ù.
±×·¯¹Ç·Î ¿ì¸®´Â Æ÷ÀÎÅÍ È¤Àº ¹è¿­Ã·ÀÚ¸¦ ÅëÇØ¼­ ¹®ÀÚ¿­À» ´Ù·ç¾î¾ß Çϴµ¥, Æ÷ÀÎÅ͸¦ ´Ù·ç¾îº»»ç¶÷Àº ¾Ë°ÚÁö¸¸, Æ÷ÀÎÅ͸¦ ÅëÇØ¼­ ¹®ÀÚ¿­À» ´Ù·ç´Â ÀÛ¾÷Àº ¸Å¿ì Â¥Áõ³ª´Â ÀÛ¾÷À̸ç, ¶ÇÇÑ ¸¹Àº ½Ã°£ÀÌ ÅõÀڵǴ ÀÛ¾÷ÀÌ´Ù.

C¿¡´Â ÀÌ·¯ÇÑ ÀÛ¾÷À» ´ë½ÅÇØÁÙ ¸¹Àº ÇÔ¼öµéÀÌ Á¦°øµÇ´Âµ¥, ´ëºÎºÐ "string.h" Çì´õÆÄÀÏ¿¡ ¼±¾ðµÇ¾î ÀÖ´Ù.

ÇÔ¼ö¼³¸í¿¡ µé¾î°¡±â Àü¿¡

strcpy, strcat °°Àº ÇÔ¼ö¸¦ ¾²Áö ¾Ê´Â°Ô ÁÁ´Ù. strncpy, strncat ¿Í °°ÀÌ À̸§¿¡ "n"À» °¡Áö°í ÀÖ´Â ÇÔ¼öµéÀ» ¼±ÅÃÇÏ´Â°Ô ÁÁ´Ù.
ÀÌÀ¯´Â strcpy, strcat µîµîÀÇ ÇÔ¼ö´Â ¾ó¸¶¸¸Å­ÀÇ ¹®ÀÚ¿­ÀÌ »ç¿ëµÉÁö ±× Å©±â¸¦ ÁöÁ¤ÇÒ¼ö ¾øÀ¸¹Ç·Î, ¹öÆÛ¿À¹öÇ÷Π¿À·ù¸¦ ÀÏÀ¸Å³¼ö Àֱ⠶§¹®ÀÌ´Ù.
ÀÌ·¯ÇÑ °ÍÀº ¶§¶§·Î ÇÁ·Î±×·¥¹ö±×°¡ µÉ¼ö ÀÖÀ¸¸ç, ÀÌ·¯ÇÑ ¹ö±×¸¦ ÀÌ¿ëÇÑ Å©·¡Å·ÀÌ °¡´ÉÇÒ¼ö Àֱ⠶§¹®ÀÌ´Ù.
"n" ÀÌ ºÙÀº ÇÔ¼ö¸¦ »ç¿ëÇϸé, »ç¿ëµÇ¾îÁú ¹®ÀÚ¿­ÀÇ Å©±â¸¦ ÁöÁ¤ÇÒ¼ö ÀÖÀ½À¸·Î, ÇÊ¿äÀÌ»óÀ¸·Î ¹®ÀÚ¿­ÀÌ »ç¿ëµÇ´Â°ÍÀ» ¹æÁöÇÒ¼ö ÀÖ´Ù.
´ÙÀ½ ¿¹Á¦¸¦ º¸¶ó

¿¹Á¦ : strcpy.c
#include <string.h> 
#include <stdlib.h> 

int main()
{
	char *string;

	string = (char *)malloc(15);

	strcpy(string, "hello world");
	strcpy(string, "hello world hello world");
	return 0;
}
string ¹è¿­ÀÇ Å©±â´Â 15Àε¥, 2¹øÂ°º¸¸é ±× ÀÌ»óÀÇ ¹®ÀÚ¿­ÀÌ º¹»çµÇ¾ú´Ù.
À§ÀÇ ¸í·ÉÀ» ÄÄÆÄÀÏ ÇØº¸ÀÚ.. ¾ÈŸ±õ°Ôµµ, ¾Æ¹«·± ¿¡·¯³ª °æ°í ¸Þ½ÃÁö°¡ ¶³¾îÁöÁö ¾Ê°í ÇÁ·Î±×·¥ÀÌ ÄÄÆÄÀÏ µÊÀ» ¾Ë¼ö ÀÖ´Ù. ÄÄÆÄÀϽà ¸ðµç Á¾·ùÀÇ °æ°í¸Þ½ÃÁö¸¦ º¸³»¶ó´Â -Wall ¿É¼ÇÀ» Á൵ ¾Æ¹«·± °æ°í¸Þ½ÃÁö¸¦ »Ñ·ÁÁÖÁö ¾Ê´Â´Ù.
[yundream@localhost test]$ gcc -o strcpy strcpy.c -Wall
[yundream@localhost test]$ 
À§ÀÇ ÇÁ·Î±×·¥À» ½ÇÇà½ÃŰ¸é ¾î¶»°Ô µÉ±î ?
Àß½ÇÇà µÉ¶§µµ ÀÖ°í ±×·¸Áö ¾ÊÀ»¶§µµ ÀÖ´Ù.
¿îÀÌ ÁÁÀ¸¸é core dump ³»°í ÇÁ·Î±×·¥ »¸¾î¹ö¸±°ÍÀ̰í, (¿¡·¯°¡ ¹ß»ýÇß´Ù´Â°É ¾Ë°í ÇÁ·Î±×·¥ µð¹ö±ë ÀÛ¾÷¿¡ µé¾î°¥°ÍÀ̹ǷÎ) ¿îÀÌ ³ª»Ú¸é °è¼Ó ½ÇÇàµÉ°ÍÀ̰í, ÀáÀçÀûÀ¸·Î »¸¾î¹ö¸± À§Çè ȤÀº Å©·¡Å· ´çÇÒ À§ÇèÀ» °¡Áö´Â ÇÁ·Î±×·¥ÀÌ µÉ°ÍÀÌ´Ù.
°Ô´Ù°¡ Àú·±·ùÀÇ ¿À·ù´Â µð¹ö±ëÇϱ⵵ ±î´Ù·Ó´Ù. ±×·¯¹Ç·Î ¹«Á¶°Ç "n" ÀÌ ºÙÀº ÇÔ¼ö¸¦ »ç¿ëÇϵµ·Ï ÇØ¾ß ÇÑ´Ù.

¹®ÀÚ¿­ º¹»ç ÇÔ¼ö

¹®ÀÚ¿­ º¹»çÇÔ¼ö´Â ¾Æ¸¶µµ °¡Àå ºó¹øÈ÷ »ç¿ëÇÏ´Â ¹®ÀÚ¿­ Á¶ÀÛ ÇÔ¼ö°¡ µÉ°ÍÀÌ´Ù. ´ÙÀ½°ú °°Àº 3°¡ÁöÀÇ ÇÔ¼öµéÀÌ ÀÖ´Ù.
#include <string.h>

void *memcpy(void *dest, const void *src, size_t n);
char *strncpy(char *dest, const char *src, size_t n);
char *strcpy(char *dest, const char *src);
void *dest ´Â º¹»çµÇ´Â ¸ñÀûÁöÀÇ ¹è¿­ÀÇ Æ÷ÀÎÅÍÀÌ´Ù.
char *dest ´Â º¹»çµÇ´Â ¸ñÀûÁöÀÇ ¹®ÀÚ¿­ÀÇ Æ÷ÀÎÅÍÀÌ´Ù.
const void *src ´Â void *dest ¿¡ º¹»çÇÒ ¹è¿­ÀÇ Æ÷ÀÎÅÍÀÌ´Ù.
const char *src ´Â char *dest ¿¡ º¹»çÇÒ ¹®ÀÚ¿­ÀÇ Æ÷ÀÎÅÍÀÌ´Ù.

À§ÀÇ ¸ðµç ÇÔ¼ö´Â dest ÀÇ Æ÷ÀÎÅ͸¦ ³Ñ°ÜÁØ´Ù.

memcpy ´Â ±âº»ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ º¹»çÇÏ´Â ÇÔ¼öÀ̹ǷÎ, Çü¿¡ °ü°è¾øÀÌ º¹»ç°¡ °¡´ÉÇÏ´Ù.
¹Ý¸é strcpy°ú strncpyÀº ¹®ÀÚ¿­À» º¹»çÇÏ´Â ÇÔ¼öÀ̹ǷÎ, ´ÜÁö ¹®ÀÚ¿­¿¡ ´ëÇØ¼­¸¸ º¹»ç°¡ °¡´ÉÇÒ°ÍÀÌ´Ù.
strcpy ´Â char *dest ¿¡ ¾ó¸¶¸¸Å­ º¹»çµÉÁö Å©±â¸¦ Á¦ÇÑÇÒ¼ö ¾ø´Ù. ±×·¯¹Ç·Î strcpy ´ë½Å¿¡ strncpyÀ» »ç¿ëÇϵµ·Ï ÇÑ´Ù.

¹®ÀÚ¿­ ¿¬°áÇÔ¼ö

¹®ÀÚ¿­ÀÇ µÚ¿¡ ¹®ÀÚ¿­À» ºÙÀ̰íÀÚ ÇÒ¶§ »ç¿ëÇÑ´Ù.
#include <string.h>

char* strcat(char *dest, const char *src);
char* strncat(char *dest, const char *src, size_t n);
char *dest ´Â µ¡ºÙ¿©Áú ¹®ÀÚ¿­À» ¹ÞÀ» ¹®ÀÚ¿­ÀÇ Æ÷ÀÎÅÍÀÌ´Ù.
char *src ´Â char *dest ¿¡ µ¡ºÙÀÏ ¹®ÀÚ¿­ÀÇ Æ÷ÀÎÅÍÀÌ´Ù.
size_t n Àº º¹»çÇÒ ¹®ÀÚ¿­ÀÇ Å©±âÀÌ´Ù.

strcat °ú strncat ¸¦ »ç¿ëÇϸé char *dest ÀÇ ¸¶Áö¸· ¹®ÀÚÀÎ '\0'ÀÌ Á¦°ÅµÇ°í, ±× µÚ¿¡ char *src °¡ ºÙ°Ô µÈ´Ù.
strcat ´Â »ç¿ëÇÏÁö¸»¶ó. ´ë½Å strncat ¸¦ »ç¿ëÇ϶ó.

¹®ÀÚ¿­ ºñ±³ÇÔ¼ö

¹®ÀÚ¿­À» ºñ±³Çϱâ À§Çؼ­ »ç¿ëÇÏ´Â ÇÔ¼öµéÀÌ´Ù.
ºñ±³ÈÄ ³Ñ°ÜÁÖ´Â °ª¿¡ ´ëÇØ¼­ È¥µ¿ÇÒ¼ö ÀÖÀ¸´Ï ÁÖÀÇ ÇØ¾ß ÇÑ´Ù.
#include <string.h>

int memcmp(const void *s1, const void *s2, size_t n);
int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);
const char *s1 ´Â ù¹øÂ° ¹®ÀÚ¿­ Æ÷ÀÎÅÍÀÌ´Ù. const void *s1 Àº ù¹øÂ° ¸Þ¸ð¸® ¹è¿­ÀÇ Æ÷ÀÎÅÍÀÌ´Ù. const char *s2 ´Â µÎ¹øÂ° ¹®ÀÚ¿­ Æ÷ÀÎÅÍÀÌ´Ù. const void *s2 ´Â µÎ¹øÀç ¸Þ¸ð¸® ¹è¿­ÀÇ Æ÷ÀÎÅÍÀÌ´Ù. size_t ´Â ¹®ÀÚ¿­ÀÇ Å©±âÀÌ´Ù.

memcpmÀº s1°ú s2 ÀÇ Ã³À½ n¹ÙÀÌÆ®ÀÇ ¸Þ¸ð¸®¸¦ ºñ±³ÇÑ´Ù. ¸¸¾à s1 ÀÌ s2 º¸´Ù ÀÛÀ¸¸é 0 º¸´Ù ÀÛÀº Á¤¼ö, s1 °ú s2 °¡ °°´Ù¸é 0, s1 ÀÌ s2 º¸´Ù Å©´Ù¸é 0º¸´Ù Å«Á¤¼ö¸¦ ¹ÝȯÇÑ´Ù.

strcmpÀº s1 °ú s2 ÀÇ ¹®ÀÚ¿­Àüü¸¦(³ÎÀ» ¸¸³¯¶§±îÁö) ºñ±³ÇÑ´Ù. s1ÀÌ s2 º¸´Ù ÀÛÀ¸¸é 0 º¸´Ù ÀÛÀºÁ¤¼ö, °°´Ù¸é 0, ´õ Å©´Ù¸é 0º¸´Ù Å« Á¤¼ö¸¦ ¹ÝȯÇÑ´Ù.

strncmp´Â strcmp ¿Í ºñ½ÁÇÏÁö¸¸ n ¹ÙÀÌÆ®¸¸Å­¸¸À» °Ë»çÇÑ´Ù. s1ÀÌ s2 º¸´Ù ÀÛÀ¸¸é 0º¸´Ù ÀÛÀºÁ¤¼ö, °°À¸¸é ¤À, ´õÅ©¸é 0º¸´Ù Å« Á¤¼ö¸¦ ¹ÝȯÇÑ´Ù.

¹®ÀÚ¿­ ã±â

#include <string.h>
void *memchr(const void *s, int c, size_t n);
char *strchr(const char *s, int c);
size_t *strcspn(chst char *s, const char *reject);
size_t *strspn(const char *s, const char *accept); 
char *strpbrk(const char *s, const char *accept); 
char *strchr(const char *s, int c); 
char *strrchr(const char *s, int c); 
char *strstr(const char *s, const char *substring); 
char *strtok(char *s, const char *delim);
memchr s °¡ °¡¸®Å°´Â ¸Þ¸ð¸® ¿µ¿ª¿¡¼­ ¹®ÀÚ c °¡ n ¹ÙÀÌÆ®¿µ¿ª¿¡ Á¸ÀçÇÏ´ÂÁö °Ë»çÇÑ´Ù. n ¹ÙÀÌÆ® ¿µ¿ª¿¡¼­ ¹®ÀÚ c ¸¦ ¹ß°ßÇϸé, ¹ß°ßµÈ °÷ÀÇ Æ÷ÀÎÆ®¸¦ ³Ñ°ÜÁØ´Ù.

strspn ¹®ÀÚ¿­ accept ¿¡ ÀÖ´Â ¹®ÀÚµé·Î ÀÌ·ç¾îÁ® ÀÖ´Â s ÀÇ Ãʱ⠹®ÀÚ¿­ÀÇ ±æÀ̸¦ °è»êÇÑ´Ù. ±æÀ̸¦ °è»êÇÑ´Ù.

strcspn reject ¿¡ ¾ø´Â ¹®ÀÚµé·Î ÀÌ·ç¾îÁ® ÀÖ´Â sÀÇ Ãʱ⠹®ÀÚ¿­ÀÇ ±æÀ̸¦ °è»êÇÑ´Ù.

strpbrk ¹®ÀÚ¿­ s¿¡¼­ ¹®ÀÚ¿­ accept ³»ÀÇ ¹®ÀÚµéÁß Çϳª°¡ óÀ½ ¹ß°ßµÇ´Â °÷À» ã¾Æ¼­ ¹ß°ßµÈ s¹®ÀÚ¿­ÀÇ Æ÷ÀÎÅ͸¦ µ¹·ÁÁØ´Ù.

strchr ¹®ÀÚ¿­ s ¿¡¼­ ¹®ÀÚ c °¡ óÀ½¹ß°ßµÈ°÷ÀÇ Æ÷ÀÎÅ͸¦ ¹ÝȯÇÑ´Ù.

strrchr ¹®ÀÚ¿­ s ¿¡¼­ ¹®ÀÚ c °¡ ¸¶Áö¸· ¹ß°ßµÈ °÷ÀÇ Æ÷ÀÎÅ͸¦ ¹Ýȯ ÇÑ´Ù.

strstr ¹®ÀÚ¿­ s ¿¡¼­ ¹®ÀÚ¿­ substring ÀÌ Ã³À½¹ß°ßµÈ °÷ÀÇ Æ÷ÀÎÅ͸¦ µ¹·ÁÁØ´Ù. ¹ß°ßµÇÁö ¾ÊÀ¸¸é NULL À» µ¹·ÁÁØ´Ù.

strtok man ÆäÀÌÁö¸¦ º¸¸é »ç¿ëÇØ¼­´Â ¾ÈµÈ´Ù°í °æ°íÇϰí ÀÖ´Ù. strtok °¡ ÇÏ´Â ÀÏÀº delim À» Åä±ÙÀ¸·Î ÇØ¼­ ¹®ÀÚ¿­À» ÆÄ½ÌÇÏ´Â °ÍÀÌ´Ù. ¿¬¼Ó ÀûÀ¸·Î È£ÃâÇϱâ À§Çؼ­´Â óÀ½ÀÎÀÚ¸¦ NULL ·Î ¼³Á¤ÇؾßÇÑ´Ù. È£ÃâÇÒ¶§ ¸¶´Ù ´ÙÀ½ ÅäÅ«ÀÌ ¹ß»ýµÈ Æ÷ÀÎÅ͸¦ ¹ÝȯÇϸç, ´õÀÌ»ó ¹ß°ßµÇÁö ¾ÊÀ¸¸é NULLÀ» ¹ÝȯÇÑ´Ù.

¹®ÀÚ¿­ ã±â ÇÔ¼ö¿¡ ´ëÇØ¼­ ¼³¸íÀ» ½á³õ±â´Â ÇÞÁö¸¸, Àú°Ô ¹«½¼¸»ÀÎÁö ¾Ë¼Û´Þ¼Û ÇÒ°ÍÀ¸·Î »ý°¢µÈ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ ÅëÇØ¼­ È®½ÇÈ÷ ÀÌÇØÇÒ¼ö ÀÖÀ»°ÍÀÌ´Ù.
¿¹Á¦ string.c
#include <string.h> 

int main()
{
	size_t n;
	char *tr;

	// ÅäÅ«À¸·Î ºÐ¸®ÇÒ ¹®ÀÚ  
	char string[] = "hello\tyundream\thohoho,ok";

	// ÅäÅ« \t ¿Í , ¸¦ ¼³Á¤ÇÏ¿´´Ù. 
	// strtok ·Î ±¸ºÐ½Ã \t¿Í , ·Î ±¸ºÐÇÒ°ÍÀÌ´Ù. 
	char seps[] = "\t,";

	// llo ¸¦ µÇµ¹·ÁÁÙ°ÍÀÌ´Ù. 
	tr = memchr("hello", 'l', 10);
	printf("%s\n", tr);

	// lohz ¿¡¼­ loh ´Â hello ¿¡ ÀÖ´Â Ãʱ⠹®ÀÚ¿­À̹ǷÎ
	// 3À» µ¹·ÁÁÖ°Ô µÉ°ÍÀÌ´Ù. 
	n = strspn("lohz", "hello");
	printf("%d\n", n);

	// kklkd ¿¡¼­ kk ±îÁö°¡ hello ¿¡ ¾ø´Â Ãʱ⠹®ÀÚ¿­À̸§
	// À̹ǷΠ2¸¦ µ¹·ÁÁÖ°Ô µÉ°ÍÀÌ´Ù. 
	n = strcspn("kklkd", "hello");
	printf("%d\n", n);

	// kkndel ¿¡¼­ 'e' °¡ "hello" ÀÇ ¹®ÀÚµéÁß °¡Àå¸ÕÀú 
	// ÀÏÄ¡°¡ µÇ¹Ç·Î 'e' °¡¹ß°ßµÈ Æ÷ÀÎÆ®¸¦ µÇµ¹·ÁÁֹǷÎ
	// el À» ³Ñ°ÜÁÙ°ÍÀÌ´Ù. 
	tr = strpbrk("kkndel", "hello");
	printf("%s\n", tr);

	// llo ¸¦ µ¹·ÁÁØ´Ù.
	tr = strchr("hello", 'l');
	printf("%s\n", tr);

	// µÚ¿¡¼­ ºÎÅÍ ÀÏÄ¡µÇ´Â ¹®ÀÚ¸¦ ã°ÔµÊÀ¸·Î 
	// lo ¸¦ µ¹·ÁÁÖ°Ô µÈ´Ù. 
	tr = strrchr("hello", 'l');
	printf("%s\n", tr);

	// llo ¸¦ µÇµ¹·ÁÁØ´Ù.
	tr = strstr("hello", "ll");
	printf("%s\n", tr);

	// ÅäÅ« '\t'¿Í ','·Î ±¸ºÐÇϹǷΠ
	// "yundream" "hohoho" "ok" 3°³ÀÇ 
	// ¹®ÀÚ¿­À» µÇµ¹·ÁÁÙ°ÍÀÌ´Ù. 
	tr = strtok(string, seps);
	while (tr != NULL)
	{
		printf("%s\n", tr);
		tr = strtok(NULL, seps);
	}

}
À§ÀÇ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÈÄ ½ÇÇàÇÏ¸é ¾Æ·¡¿Í °°Àº °á°ú¸¦ º¸¿©ÁØ´Ù.
[yundream@localhost yundream]$ ./string
llo
3
2
el
llo
lo
llo
hello
yundream
hohoho
ok

±âŸ ÇÔ¼ö

#include <string.h>

void *memset(void *s, int c, sizt_t n);
char *sterror(int errnum);
size_t *strlen(const char *s);
int strcasecmp(const char *s1, const char *s2);
memset Àº ¸Þ¸ð¸®¸¦ n Å©±â¸¸Å­À» c ¹®ÀڷΠä¿î´Ù. º¸ÅëÀº ¸Þ¸ð¸® ÇÒ´çµÈ ¿µ¿ªÀ» ÃʱâÈ­Çϱâ À§Çؼ­ ÁÖ·Î »ç¿ëÇÑ´Ù.

sterror ¸¹Àº Á¾·ùÀÇ ÇÔ¼ö°¡ ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§, errno ¸¦ µ¹·ÁÁִµ¥, sterror ¿¡ ÀÌ errno ¹øÈ£¸¦ ÁÖ¸é, ÇØ´ç ¿¡·¯¿¡ ´ëÇÑ ³»¿ëÀ» ¹®ÀÚ¿­·Î µÇµ¹·ÁÁØ´Ù.

strlen ÀÚÁÖ»ç¿ëÇÏ´Â ÇÔ¼öÀϰÍÀÌ´Ù. ¹®ÀÚ¿­ÀÇ ±æÀ̸¦ µ¹·ÁÁִµ¥, '\0' À» ¸¸³ª±â Àü±îÁöÀÇ ¹®ÀÚ¿­À» µ¹·ÁÁØ´Ù.

strcasecmp ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê°í s1°ú s2 ¹®ÀÚ¿­À» ºñ±³ÇÑ´Ù. s1 ÀÌ s2 º¸´Ù ÀÛÀ¸¸é 0º¸´ÙÀÛÀº Á¤¼ö, °°À¸¸é 0, s1 ÀÌ s2 º¸´Ù Å©¸é 0º¸´ÙÅ« Á¤¼ö¸¦ µ¹·ÁÁØ´Ù.

´ÙÀ½Àº strerror ÀÇ »ç¿ë¿¹Á¦ÀÌ´Ù.
¿¡Á¦ streeror.c
#include <string.h> 
#include <errno.h> 
#include <sys/types.h> 
#include <sys/stat.h> 
#include <fcntl.h> 

int main()
{
	if (open("test.test1", O_RDONLY) < 0)
	{
		printf("%s\n", strerror(errno));
		perror("error : ");
		exit(0);
	}
}
À§ÀÇ ÄÚµå´Â Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏÀ» open Çϵµ·Ï µÇ¾î ÀÖ´Ù. open ÇÔ¼ö´Â ¿¡·¯¸¦ ¹ß»ýÇÒ°ÍÀ̰í errno ¸¦ µ¹·ÁÁÖ°Ô µÉ°ÍÀÌ´Ù.
ÀÌ errno ¸¦ strerror ¿¡ ³Ö¾îÁÖ¸é, errno ¿¡ ¸ÅĪµÇ´Â ¿¡·¯¸Þ½ÃÁö¹®ÀÚ¿­À» µ¹·ÁÁØ´Ù.
strerror Àº µð¹ö±ë¿ëµµ·Î ¸¹ÀÌ »ç¿ëµÇ´Â ÇÔ¼öÀÌ´Ù.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.