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.