´ÙÀ½ À§·Î ÀÌÀü ¸ñÂ÷ ¸®´ª½º ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ °¡À̵å

8.3 Ncurses - ¼Ò°³ (Introduction)

´ÙÀ½ ¿ë¾îµéÀº ÀÌ Àå¿¡¼­ »ç¿ëµÉ °ÍÀÌ´Ù.:

´ë°³ ncurses ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥Àº ÀÌó·³ º¸ÀδÙ.:

.h¸¦ Æ÷ÇÔÇÏ´Â(including) °ÍÀº WINDOW¿Í ÇÔ¼ö¿øÇü(function prototype)¿Í °°ÀÌ ncurses¸¦ À§ÇÑ º¯¼öµé°ú ŸÀÔµéÀ» Á¤ÀÇÇÑ´Ù. ÀÚµ¿ÀûÀ¸·Î .h,.h,.h,.h¸¦ Æ÷ÇÔÇÑ´Ù.

initscr()´Â ncurses ÀÚ·á ±¸Á¶µéÀ» ÃʱâÈ­ÇÏ°í Àû´çÇÑ terminfo ÆÄÀÏÀ» Àдµ¥ »ç¿ëµÈ´Ù. ¸Þ¸ð¸®´Â ÇÒ´çµÇ¾îÁø´Ù. ¿¡·¯°¡ ¹ß»ýÇÑ´Ù¸é, initscr´Â ERR¸¦ ¹ÝȯÇÑ´Ù ±×·¸Áö¾ÊÀ¸¸é Æ÷ÀÎÅÍ°¡ ¹ÝȯµÇ¾îÁø´Ù. ºÎ°¡ÀûÀ¸·Î, È­¸éÀº Áö¿öÁö°Ô µÇ°í ÃʱâÈ­ µÇ¾îÁú °ÍÀÌ´Ù.

endwin()Àº ncurses·Î ºÎÅÍ ÇÒ´çµÈ ¸ðµç ÀÚ¿øµéÀ» û¼ÒÇÏ°í tty ¸ðµå¿¡ initscr()À» È£ÃâÇϱâ Àü »óŸ¦ ÀúÀåÇÑ´Ù. initscr()Àº curses·Î ºÎÅÍ ´Ù¸¥ ¾î¶² ÇÔ¼öÀÌÀü¿¡ È£ÃâµÇ¾îÁ®¾ß ÇÏ°í endwin()´Â ÇÁ·Î±×·¥À» ³¡³»±â Àü¿¡ È£ÃâµÇ¾îÁ®¾ß ÇÑ´Ù. ÇÑ ´Ü¸»±â ÀÌ»ó¿¡ Ãâ·ÂÀ» ÇÏ°íÀÚ ÇÒ ¶§´Â initscr() ´ë½Å¿¡ newterm(...)¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

ÇÁ·Î±×·¥ ÄÄÆÄÀÏÇϱâ:

Ç÷¡±× ¾È¿¡ ´ç½ÅÀÌ ÁÁ¾ÆÇÏ´Â °ÍÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù(gcc(1)). ncurses.h¸¦ À§ÇÑ °æ·Î°¡ ¼öÁ¤µÇ¾úÀ¸¸é ´ÙÀ½ ÁÙÀ» Æ÷ÇÔ(include)ÇÏ¿©¾ß ÇÑ´Ù.

±×·¸Áö ¾ÊÀ¸¸é, ncurses.h,nterm.h,termcap.h,unctrl.hÀº ãÀ» ¼ö ¾øÀ» °ÍÀÌ´Ù. Linux¿¡¼­ »ç¿ë°¡´ÉÇÑ ´Ù¸¥ Ç÷¡±×µé:

2´Â gcc¿¡°Ô ÃÖÀûÈ­(optimization)Ç϶ó°í ¸»ÇÑ´Ù, -ansi´Â ansi¿¡ ÀÏÄ¡ÇÏ´Â c-code¿ëÀÌ´Ù, -Wall´Â ¸ðµç °æ°í(warning)¸¦ ÀμâÇÒ °ÍÀÌ´Ù, -m486´Â ÀÎÅÚ 486¸¦ À§ÇÑ ÃÖÀûÈ­µÈ code¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.(binary´Â ÀÎÅÚ 386»ó¿¡¼­µµ »ç¿ëµÉ ¼ö ÀÖ´Ù.).

ncurses ¶óÀ̺귯¸®´Â /usr/lib¿¡¼­ ãÀ» ¼ö ÀÖ´Ù. ncurses ¶óÀ̺귯¸®´Â ¼¼ ¹öÀüÀÌ ÀÖ´Ù.

È­¸é(screen)À» À§ÇÑ ÀڷᱸÁ¶´Â .h¿¡ Á¤ÀÇµÈ °Íó·³ À©µµ¿ìÁî(Windows)¶ó ºÒ¸®¾î Áø´Ù. À©µµ¿ì´Â ÇÁ·Î±×·¡¸Ó°¡ ´Ü¸»±â¿¡ Ãâ·ÂÇÏ´Â °Í¾øÀÌ Á¶Á¾ÇÒ ¼ö ÀÖ´Â ¸Þ¸ð¸® ¾È¿¡ ÀÖ´Â ¹®ÀÚ ¹è¿­°ú °°Àº °ÍÀÌ´Ù. µðÆúÆ® À©µµ¿ì´Â ´Ü¸»±âÀÇ Å©±âÀÌ´Ù. newwin(...)¸¦ °¡Áö°í ´Ù¸¥ À©µµ¿ì¸¦ ¸¸µé ¼ö ÀÖ´Ù.

ÃÖ»óÀ¸·Î ¹°¸®ÀûÀÎ ´Ü¸»±â¸¦ ¾÷µ¥ÀÌÆ®Çϱâ À§ÇØ, ncurses´Â ¼±¾ðµÈ ¶Ç ´Ù¸¥ À©µµ¿ì¸¦ °¡Áö°í ÀÖ´Ù. ÀÌ°ÍÀº ´Ü¸»±â°¡ ½ÇÁ¦·Î ¾î¶»°Ô º¸¿©Áö´Â°¡ÀÇ À̹ÌÁöÀÌ°í ´Ü¸»±â°¡ ¾î¶»°Ô º¸¿©Á®¾ß¸¸ Çϴ°¡ÀÇ À̹ÌÁöÀÌ´Ù. refresh()°¡ È£ÃâµÉ ¶§ Ãâ·ÂµÇ¾îÁú °ÍÀÌ´Ù. ncurses´Â ¾È¿¡ ÀÖ´Â Á¤º¸¸¦ °¡Áö°í ¹°¸®ÀûÀÎ ´Ü¸»±â¸¦ ¾÷µ¥ÀÌÆ®ÇÒ °ÍÀÌ´Ù. ¶óÀ̺귯¸® ÇÔ¼öµéÀº ¾÷µ¥ÀÌÆ® ÇÁ·Î¼¼½º¸¦ À§ÇØ ³»ºÎÀÇ ÃÖÀûµÈ °ÍÀ» »ç¿ëÇÒ °ÍÀ̹ǷΠ°¡Àå ÃÖÀûÀÇ ¹æ¹ýÀ¸·Î ´Ù¸¥ À©µµ¿ìµéÀ» º¯È­½ÃÅ°°í Çѹø¿¡ È­¸éÀ» ¾÷µ¥ÀÌÆ®ÇÒ ¼ö ÀÖ´Ù.

ncurses ÇÔ¼öµéÀ» °¡Áö°í ÀÚ·á ±¸Á¶Ã¼ window¸¦ Á¶Á¾ÇÒ ¼ö ÀÖ´Ù. w·Î ½ÃÀÛÇÏ´Â ÇÔ¼öµéÀº ´ç½ÅÀÌ À©µµ¿ì(window)¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ» Çã¿ëÇÏ´Â ¹Ý¸é, ´Ù¸¥ °ÍµéÀº ÀϹÝÀûÀ¸·Î ÀÛ¿ëÇÑ´Ù. mv·Î ½ÃÀÛÇÏ´Â ÇÔ¼öµéÀº Ä¿¼­¸¦ óÀ½ÀÇ y,x À§Ä¡·Î À̵¿½ÃŲ´Ù.

¹®ÀÚ´Â ¼Ó¼º(attributes)¿¡ ´ëÇÑ ºÎ°¡ÀûÀÎ Á¤º¸¸¦ ÀúÀåÇÏ´Â long unsigned int°ªÀÎ chtype ŸÀÔÀ» °®´Â´Ù.

ncurses´Â µ¥ÀÌŸº£À̽º¸¦ »ç¿ëÇÑ´Ù. ÀϹÝÀûÀ¸·Î µ¥ÀÌŸº£À̽º´Â /lib/terminfo¿¡ À§Ä¡ÇÏ°í ncurses´Â Áö¿ª ´Ü¸»±â Á¤ÀǸ¦ °Å±â¼­ ã´Â´Ù. ¿ø·¡ÀÇ terminfo¸¦ º¯È­½ÃÅ°Áö ¾Ê°í ´Ü¸»±â¿¡ ´ëÇÑ ¸î¸î ´Ù¸¥ Á¤ÀǵéÀ» Å×½ºÆ®Çϱ⸦ ¿øÇÑ´Ù¸é, ȯ°æº¯¼ö(environment variable)¸¦ ÁöÁ¤(set)Ç϶ó. ncurses´Â ÀÌ º¯¼öµéÀ» üũÇÏ°í /usr/lib/terminfo/¸¦ ´ë½ÅÇÏ¿© °Å±â¿¡ ÀúÀåµÈ Á¤ÀǵéÀ» »ç¿ëÇÒ °ÍÀÌ´Ù.

ÇöÀç ncurses ¹öÀüÀº 1.8.6()ÀÌ´Ù.

ÀÌÀåÀÇ ³¡¿¡¼­ BSD-Curses,ncurses¿Í Sun-OS 5.4ÀÇ curses¿¡ ´ëÇÑ °³°ü(overview)ÀÌ ´ã±ä Ç¥¸¦ ¹ß°ßÇÒ ¼ö ÀÖ´Ù. ÁöÁ¤µÈ ÇÔ¼ö¿Í ±×°ÍÀÌ ±¸ÇöµÈ °÷À» ã°íÀÚ ÇÒ °æ¿ì¿¡ ÂüÁ¶Ç϶ó.


ÀÌÀü:8.2.4 Termcap ´É·Âµé ´ÙÀ½:8.4 ÃʱâÈ­ (Initializing)

Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved

Email To:Webmaster , Another address
LAST UPDATE Dec 9,1997
Created Dec 9,1997