ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 È÷½ºÅ丮
2 getopt¸¦ ÀÌ¿ëÇÑ ÇÁ·Î±×·¥ ÀÎÀÚ Ã³¸®
¸ðµç C(C++)·Î µÈ ½î¾²´Â ¹Ýµå½Ã ÇϳªÀÇ main() ÇÔ¼ö¸¦ Æ÷ÇÔÇϸç, main ÇÔ¼ö´Â 2°³ÀÇ ÀÎÀÚ¸¦ °¡Áö°Ô µÈ´Ù. ÀϹÝÀûÀ¸·Î main() ÇÔ¼ö´Â ¾Æ·¡¿Í °°ÀÌ ¼±¾ðµÈ´Ù. void main (int argc, char **argv) #include <stdlib.h> int main(int argc, char **argv) { int i; printf("¾Æ±Ô¸ÕÆ®ÀÇ ¼ö´Â %d °³ÀÔ´Ï´Ù", argc); for (i = 0; i < argc; i ++) { printf("%d ¹øÂ° ¾Æ±Ô¸ÕÆ® : %s", i, argv[i]); } return 0; }À§ÀÇ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ÇØ¼ ½ÇÇà½Ã۸é, ¾Æ±Ô¸ÕÆ®ÀÇ ¼ö¿Í °¢°¢ÀÇ ¾Æ±Ô¸ÕÆ®¸¦ µ¹·ÁÁÖ´Â°É º¼¼ö ÀÖÀ»°ÍÀÌ´Ù. [yundream@localhost test]# ./argc hello myname ¾Æ±Ô¸ÕÆ®ÀÇ ¼ö´Â 3 °³ÀÔ´Ï´Ù 0 ¹øÂ° ¾Æ±Ô¸ÕÆ® : ./argc 1 ¹øÂ° ¾Æ±Ô¸ÕÆ® : hello 1 ¹øÂ° ¾Æ±Ô¸ÕÆ® : myname
ºÐ¸íÈ÷ main() ÇÔ¼öÀÇ ¾Æ±Ô¸ÕÆ®·Î ³Ñ¾î¿À´Â argc ¿Í argv ¸¦ Ȱ¿ëÇØ¼ ±âº»ÀûÀÎ ¾Æ±Ô¸ÕÆ® ÃæºÐÈ÷ ÇÒ¼ö ÀÖ±â´Â ÇÏÁö¸¸, º¹ÀâÇÑ ½ÇÇà ÀÎÀÚ¸¦ ó¸®Çϱ⿡´Â ÀûÇÕÇÏÁö ¾Ê´Ù.
¿ì¸®°¡ ¾ðÁ¦³ª »ç¿ëÇÏ´Â °¡Àå °£´ÜÇÑ ls Á¶Â÷µµ "ls -al" °ú °°Àº ¿É¼ÇÀ» Áö¿øÇÑ´Ù. ls -al ¿¡¼ º¸µíÀÌ À̰ÍÀº ls -a -l ·Îµµ »ç¿ëµÉ¼öµµ ÀÖ°í, ls -l -a ·Îµµ »ç¿ëµÉ¼ö ÀÖ´Ù. À̰ÍÀ» ÇÁ·Î±×·¥³»¿¡¼ »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ó¸®ÇÏ·Á°í ÇÏ¸é º¸Åë ÀÏÀÌ ¾Æ´Ò°ÍÀÌ´Ù. ±×·¡¼ À¯´Ð½º ¿¡¼´Â ÀÌ·¯ÇÑ ¿É¼ÇÀ» ½±°Ô ó¸®ÇÒ¼ö ÀÌ¶Ç·Ï µµ¿ÍÁÖ´Â getopt(3) ÇÔ¼ö¸¦ Áö¿øÇÑ´Ù. À̹ø¿¡´Â getopt ¸¦ ÀÌ¿ëÇØ¼ ´Ù¾çÇÑ ¿É¼ÇÀ» ó¸®ÇÏ´Â testopt ¶ó´Â ÇÁ·Î±×·¥À» ¸¸µé¾î º¸µµ·Ï ÇϰڴÙ. ÇÁ·Î±×·¥ À̸§Àº testopt.c·Î ÇϰڴÙ. #include <unistd.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> void help(); void version(); int main(int argc, char **argv) { int opt; int port_num; int fp; int opt_ok; char file_name[16]; char buf[256]; while((opt = getopt(argc, argv, "hvf:")) != -1) { switch(opt) { case 'h': help(); break; case 'v': version(); break; case 'f': memcpy(file_name, optarg, 16); opt_ok = 1; break; } } if (opt_ok != 1) { help(); exit(0); } if (access(file_name, R_OK) != 0) { printf("ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù"); exit(0); } if((fp = open(file_name, O_RDONLY)) == -1) { printf("file open error"); exit(0); } memset(buf, '0', 256); while(read(fp, buf, 256) > 0) { printf("%s", buf); memset(buf, '0', 256); } } void help() { printf("Usage: ./testopt [OPTION] [FILE]" " -h µµ¿ò¸»" " -f [FILE] ÆÄÀÏÃâ·Â" " -v ¹öÀüÃâ·Â"); exit(0); } void version() { printf("Version : 1.01"); exit(0); }
¸Å¿ì °£´ÜÇϰí ÀÌÇØ°¡ ½¬¿î ¿¹Á¦ÀÌ´Ù. getopt ¸¦ ÀÌ¿ëÇØ¼ ÇÁ·Î±×·¥ÀÇ ÀÎÀÚ¸¦ °Ë»ç ÇØ¼ '-' °¡ ¾Õ¿¡ ºÙ¾î ÀÖ´Â ÀÎÀÚ´Â ¿É¼ÇÀ¸·Î °£ÁÖÇØ¼ "hvf" Áß ¾î´À ¿É¼ÇÀÎÁö¸¦ °Ç»çÇØ¼ ÇØ´ç ·çƾÀ» ½ÇÇà½ÃÄÑÁØ´Ù. ´Ü "f" ÀÇ °æ¿ì¿¡´Â ":" °¡ ºÙ¾î Àִµ¥, ÀÌ´Â "f" ¿É¼ÇÀº ¹Ýµå½Ã µÚ¿¡ °ªÀÌ µû¶ó¾ß ÇÔÀ» ¸í½ÃÇϰí ÀÖ´Ù. ¿©±â¿¡¼ °ªÀ̶õ ȸ鿡 Ãâ·ÂÇϰíÇ ÆÄÀÏÀ̸§ÀÌ´Ù.
[yundream@localhost test]# ./testopt -h Usage: ./testopt [OPTION] [FILE] -h µµ¿ò¸» -f [FILE] ÆÄÀÏÃâ·Â -v ¹öÀüÃâ·Â [yundream@localhost test]# ./testopt -f ./testopt: option requires an argument -- f Usage: ./testopt [OPTION] [FILE] -h µµ¿ò¸» -f [FILE] ÆÄÀÏÃâ·Â -v ¹öÀüÃâ·Â 3 getopt_long |
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|