1992.6.25. SUBJECT: C, Xlib, Xt °úÁ¦ ¸ðÀ½ÀÇ ÂüÁ¶ »çÇ×µé ( ÀÚ·á II ) STATUS OF THIS MEMO: memo l00005ÀÇ °úÁ¦µéÀ» ÇØ°áÇϴµ¥ µµ¿òÀÌ µÉ»çÇ×µé°ú À̸¦ ±¸ÇöÇÑ sourceµéÀÇ À§Ä¡¸¦ ¾Ë·Á ÁØ´Ù. DESCRIPTION 1.°úÁ¦ 1 * ÀԷµǴ ¹®ÀÚ¿ Áß ÇÑ±Û character¸¦ ±¸º°ÇØ ³»´Â ºÎºÐÀÌ ÇÙ½É. * ¿Ï¼ºÇü ÇѱÛÀÇ MSB Áï 7¹ø bit´Â 1ÀÓÀ» Âø¾ÈÇÏ¿© if( char & 0x80) han_char_count++; ÇÏ´Â ½ÄÀ¸·Î ÇÑ±Û check. * 0x80Àº 10000000ÀÌ°í 2¹ÙÀÌÆ® ¿Ï¼ºÇü ÇѱÛÀÇ °¢ ¹ÙÀÌÆ®´Â 1xxxxxxx·Î MSB°¡ 1À̹ǷΠÀÌ µÑÀ» bit-and½ÃÄÑ 1ÀÌ µÇ¸é ÇѱÛÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. * ¶Ç ÇÑ±Û ÇÑ character¼ö´Â 2¹ÙÀÌÆ®À̹ǷΠcountµÈ ¼ö¸¦ 2·Î ³ª´©¾î ÁÖ¾î¾ß ½ÇÁ¦ character¼ö°¡ µÈ´Ù. * Âü°í ÀÚ·á: xedu/memo/z00015 * ÇØ´ç ÈÀÏ: xedu/hw/hw1/hw1.c 2.°úÁ¦ 2 * ÇÙ½ÉÀº µÎ°¡Áö. ÇÑ°¡Áö´Â ÀÔ·ÂµÈ ÇѱÛÀÇ Äڵ带 °¡Áö°í ÆùÆ® ÈÀÏ¿¡¼ ÇØ´ç ÆùÆ®¸¸À» Àоî¿À´Â °Í. ÀÌ´Â ¿Ï¼ºÇü ÇÑ±Û ÄÚµå Å×À̺í°ú ¿Ï¼ºÇü ÆùÆ® ÈÀÏ¿¡ ´ëÇØ ÃæºÐÈ÷ ÀÌÇØÇÏ°í ÀÖ¾î¾ß ÇÔ. ÀÌ¿¡ °üÇÑ ÀÚ·á´Â xedu/memo/z00015ÀÇ "0-4. 2¹ÙÀÌÆ® ¿Ï¼ºÇü ÇѱÛ(KS¿Ï¼ºÇü)"°ú ¿Ï¼ºÇü ÄÚµå Å×À̺íÀ» Àß º¸½Ã¸é ½±°Ô ÀÌÇØÇÏ½Ç °ÍÀÓ. KS C5601 ÄÚµå Å×À̺íÀ» º¸½Ã¸é 0xb0´Â "°¡"ÀÇ Ã¹ ¹ÙÀÌÆ® Äڵ尪ÀÌ°í 0xa1Àº µÎ¹ø° ¹ÙÀÌÆ®ÀÇ ÄÚµå °ªÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. * ¶Ç ÇÑ°¡Áö´Â ÀÐ¾î ¿Â bitmap ÆùÆ® ÈÀÏÀ» ȸ鿡 ¾î¶»°Ô ºñÆ® ´ÜÀ§ÀÇ Ç¥½Ã¸¦ ÇÒ °ÍÀΰ¡ ÇÏ´Â Á¡. ±èÁ¤¹Î DL°¡ ÀÛ¼ºÇÑ showbitmap.c¸¦ ÂüÁ¶ÇÏ½Ç °Í. ÀÌ ÈÀÏÀº ¼±ÅÃµÈ ÈÀÏÀÇ ¸ðµç ÆùÆ®¸¦ º¸¿©ÁÖ°Ô µÇ ÀÖÀ½À» ÁÖÀÇ. * Âü°í ÀÚ·á: xedu/memo/z00015ÀÇ font size °ü·Ã ºÎºÐ. ÀÔ¹® X Window System(Áö»ê»ç) - "60Àý. bitmapÀ» ¸¸µé±â À§Çؼ´Â?" * ÇØ´ç ÈÀÏ: xedu/hw/hw2/hw2.c 3.°úÁ¦ 3 * #ifdef¸¦ »ç¿ëÇÏ¸é ¼·Î ´Þ¸® ÄÄÆÄÀÏÇØ¾ß ÇÏ´Â ¸ðµâÀ» µ¿ÀÏ ÈÀÏ¿¡ °¡Áú ¼ö ÀÖ´Ù. À̸¦ Makefile¿¡¼ÀÇ DEFINE°ª¿¡ µû¶ó Á¶°ÇÀûÀ¸·Î ÄÄÆÄÀÏ ÇÑ´Ù. * Âü°í ÀÚ·á: ÀÔ¹® X Window System(Áö»ê»ç) ÀÌ Ã¥Àº ´ÙÀ½ÀÇ °úÁ¦ Àü¹ÝÀ» °ÅÃÄ ¿·¿¡ ³õ°í º¸½Ã±â ¹Ù¶÷. Á¤¸» Á¤¸®°¡ Àß µÇ ÀÖÀ½. * ÇØ´ç ÈÀÏ: xedu/hw/hw3/hw3.c 4.°úÁ¦ 4 * Xlib¿Í XtÀÇ Á¶ÇÕÀ» ¾î¶»°Ô ÇÒ °ÍÀΰ¡°¡ ù ¹®Á¦·Î µîÀå. ½ÇÁ¦ Xt¸¦ °¡Áö°í ÇÁ·Î±×·¥ÇÑ´Ù°í ÇÏÁö¸¸ ÀÌ´Â ¾îµð±îÁö³ª WidgetµéÀ» °£ÆíÇÏ°Ô createÇÑ´Ù´Â ÀǹÌÀÌÁö Widget°£ÀÇ link¿Í ApplicationÀÇ ³»¿ëÀ» Á¦¾îÇÏ´Â °ÍÀº »ó´ç ºÎºÐ Xlib·Î coding µÈ´Ù. * °¢ WidgetÀº ¾î¶»°Ô ±â´ÉÇÏ´Â °ÍÀΰ¡. ¶Ç ¾î¶² WidgetÀ» »ç¿ëÇÒ °ÍÀΰ¡°¡ °¡Àå Å©°Ô °í¹ÎµÉ °Í. ÀÌ°Í Àú°Í »ç¿ëÇØ º¸½Ã±æ. * Athena WidgetÀº ¸Å¿ì Ãʺ¸ÀûÀÎ, demo¿ëÀ¸·Î ¹ßÇ¥µÈ °ÍÀ¸·Î ´Ü¼øÇÒ °ÍÀÓ. * event handler¿Í call back¿¡ ´ëÇØ ÃæºÐÈ÷ ÀÌÇØ ÇϽñæ. ±×·¯¸é "quit" button »Ó¸¸ ¾Æ´Ï¶ó ÇÑ À©µµ¿ì ³»¿¡ ¿©·¯°³ÀÇ buttonÀ» ¸¸µé¾î ´Þ°í ÀÌ buttonÀÌ ´·ÁÁ³À» ¶§ÀÇ ±â´ÉÀ» ÀÚÀ¯·Ó°Ô Á¤ÀÇÇØ »ç¿ëÇÒ ¼ö ÀÖÀ½. * ÇØ´ç ÈÀÏ: xedu/hw/hw4/hw4.c 5.°úÁ¦ 5 * Æ÷ÀÎÅÍ¿Í ±¸Á¶Ã¼¿¡ ´ëÇÑ ÁÁÀº ¿¹Á¦°¡ µÉ °Í. * ÄÄÆÄÀÏ ÈÄ ÈÀÏÀ» ½ÇÇà½ÃÄ×À» ¶§ ¹ß»ýÇÏ´Â Segmentation fault³ª SEGV error( Segmentation Violation Error)´Â ÇÁ·Î±×·¥¿¡¼ Æ÷ÀÎÅ͸¦ Àß ¸ø »ç¿ëÇÏ¿© ¸Þ¸ð¸®¿¡ ¿Ã¶ó¿Í ÀÖ´Â ½Ã½ºÅÛ °ü·Ã ÄÚµåÀÇ ¾îµå·¹½º¸¦ ÄÝÇÏ´Â °æ¿ì. ÄÄÆÄÀÏ ¿¡·¯°¡ ¾ø´Â °æ¿ìÀ̹ǷΠÆ÷ÀÎÅÍ °ü·Ã º¯¼öµéÀ» üũÇØ º¸½Ã¶ó. * xdbx,adb¸¦ °£´ÜÇÏ°Ô³ª¸¶ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸é °£´ÜÇÏ°Ô ¹®Á¦µÇ´Â ºÎºÐÀ» ã°Ô µÊ. À§¿Í °°Àº runtime error¸¦ ã¾Æ ³»±â À§Çؼ´Â debugging toolµéÀ» Àß »ç¿ëÇÒ ÁÙ ¾Ë¾Æ¾ß ÇÔ. * ÇØ´ç ÈÀÏ: xedu/hw/hw3/hw3.1.c, xedu/hw/hw4/hw4.1.c 6.°úÁ¦ 6 * ¿©·¯ Window Manager°¡ »ç¿ëÇÏ´Â resouce fileµé(/usr/lib/X11/app-defaults¹ØÀÇ resource ÈÀϵé), /usr/lib/X11/xdmÀÇ XresourcesÈÀÏ µî XÀÇ Customizing¿¡ °ü½ÉÀÌ ÀÖ¾ú´ø °æ¿ì¶ó¸é ±× Àǹ̵éÀÇ ÀÌÇØ¿¡ À¯¿ëÇÑ °æ¿ì. * 'mechanism, not polocy'¶ó´Â ¿øÄ¢¿¡ Ãæ½ÇÇÑ ¿¹. ¸¹Àº ºÎºÐÀ» »ç¿ëÀÚ Á¤ÀÇ ¿µ¿ªÀ¸·Î ³²°Ü µÐ °Í. * class¿Í instanceÀÇ °³³äÀ» ±×¸®°í class À̸§°ú instance À̸§ÀÇ naming schemeÀ» ÀÌÇØÇϽñæ. * XtInitialize(nstance, class, ...)¿Í XtCreateManagedWidget(instance, class, widget, ..)ÀÇ intstance¿Í class¸¦ Àß È®ÀÎÇϽöó. * ÇØ´ç ÈÀÏ: xedu/hw/hw3/Hw5 - ÀÌ ÈÀÏÀ» ȯ°æº¯¼ö XENVIRONMENT¿¡ settingÇÏ´øÁö home directory¹ØÀ¸·Î °¡Á®´Ù ³õ¾Æ¾ß ÇÑ´Ù. 7.°úÁ¦ 7 * ¿©±â¼µµ °¢ WidgetÀº ¾î¶»°Ô ±â´ÉÇÏ´Â °ÍÀΰ¡. ¶Ç ¾î¶² WidgetÀ» »ç¿ëÇÒ °ÍÀΰ¡°¡ ¹®Á¦. ÂüÁ¶ ÈÀÏÀÇ smapler¿Í ±× source´Â ÀÌ ¹®Á¦¸¦ ´Ù¼Ò ÇؼÒÇØ ÁÜ. °ü·Ã ¸Å´º¾óÀÌ Ãʺ¸ÀÚ¿¡°Ô´Â ½ÅÅëÄ¡ ¾ÊÀ½. * ÇØ´ç ÈÀÏ: xedu/hw/hw5/hw5.c 8.°úÁ¦ 8 * ¾ÆÁÖ °£´ÜÇÑ modify·Î ÇØ°áµÉ °Í. * ÇØ´ç ÈÀÏ: xedu/hw/hw6/hw6.c 9.°úÁ¦ 9 * ¿ì¼± sample.cÀÇ automata°ü·Ã ºÎºÐÀ» ¸íÈ®È÷ ÀÌÇØÇϽñæ. ±èÁ¤¹ÎDLÀÇ automata´Â °³³äÀ» Àâ´Âµ¥ È°¿ëÇϽðí,ÀÌ automata´Â libhangl.aÀÇ automata¸¦ ÀÌÇØÇϱ⠽±°Ô modifyÇÑ °ÍÀÓ. * ÇØ´ç ÈÀÏ: xedu/hw/hw8/hw8.c 10.°úÁ¦ 10 * ÀÌ ´Ü°è¸¦ Áö³ª¸é X ClientµéÀÇ Å° ÀÔ·Â ¸ðµâµéÀ» ã¾Æ ´Ù´Ï¸é¼ ÇÑ±Û automata·Î ¹Ù²Ù¾î ÁÙ ¼ö ÀÖ°í ÀÌ°ÍÀÌ ¹Ù·Î X ÇѱÛÈÀÓ. * ÇØ´ç ÈÀÏ: xedu/hw/hw9/hw9.c Revision History Created on June 25.1992.