Á¦ ¸ñ: [°­ÁÂ] /etc/services ÆÄÀÏ /etc/services ÆÄÀÏÀº È£½ºÆ®¿¡¼­ »ç¿ë°¡´ÉÇÑ ¼­ºñ½ºÀÇ ¸®½ºÆ®¸¦ Á¦°øÇÑ´Ù. ´ëÃæ ±× Çü½ÄÀ» º¸¸é.. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote ftp 21/tcp # 22 - unassigned telnet 23/tcp # 24 - private smtp 25/tcp mail # 26 - unassigned time 37/tcp timserver time 37/udp timserver ------- ------ ---------- 1 2 3 1¹ø °ø½Ä ¼­ºñ½º ¸íÀÔ´Ï´Ù. 2¹øÀº Æ÷Æ® ¹øÈ£ / ÇÁ·ÎÅäÄÝ À̸§ 3¹ø º°Äª ÀÔ´Ï´Ù. ¿©±â¼­ Áß¿äÇÑ °ÍÀº 1¹ø 2¹ø ÀÌÁÒ.. º¸Åë °¢ À¯´Ð½º¿¡´Â Æ÷Æ®¶ó´Â °ÍÀÌ Á¸ÀçÇÕ´Ï´Ù. ¿ì¸®°¡ ÀϹÝÀûÀ¸·Î telnet Á¢¼ÓÀ¸·Î ÇÏÀÌÅÚÀ̳ª ³ª¿ì¸¦ µé¾î°¥¶§ telnet home.hitel.co.kr À̶ó°í ÇÏÁÒ? ÇÏÁö¸¸ ÀÌ°ÍÀ» Á»´õ ÀÚ¼¼È÷ º¸¸é 23¹ø Æ÷Æ®·Î µé¾î°¡´Â °ÍÀÔ´Ï´Ù. ´ÜÁö ±×°ÍÀÌ µðÆúÆ® ¼³Á¤ÀÌ µÇ¾îÀֱ⠶§¹®ÀÌÁÒ. Áï telnet home.hitel.co.kr 23 À̶ó°í Çϸé telnet home.hitel.co.kr À̶û °°Àº ¿ªÈ°À» ÇÏ´Â °ÅÁÒ. ÀÌ°ÍÀÇ Á¤ÀÇ´Â À§¿¡ º¸´Ù ½ÃÇÇ. telnet 23/tcp ÀÌ°ÍÀ¸·Î Á¤ÀÇ°¡ µÇ¾îÀÖÁÒ? À̹ø¿¡ ftp ·Î ¾î¶² ¼­¹ö·Î µé¾î°¥¶§ µðÆúÆ® ¼³Á¤Àº 21¹ø Æ÷Æ® ÀÔ´Ï´Ù. ftp mud.bigtel.co.kr ¿Í ftp mud.bigtel.co.kr 21 °ú´Â °°Àº ¿ªÈ°ÀÔ´Ï´Ù. ÀÌ°ÍÀº ftp 21/tcp ÀÌ·¸°Ô Á¤ÀÇ µÇ¾îÀÖ½À´Ï´Ù. »ó´çÈ÷ Àç¹ÌÀÖÁÒ? ¿ì¼±Àº ¿©±â±îÁö.. /etc/services ´Â °Çµå¸®Áö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ¹Ù²Ü ÇÊ¿ä°¡ °ÅÀÇ ¾ø°Åµç¿ä. ÇØÅ·ÇÒ¶§ »©°í¿ä. ³ªÁß¿¡ °í±Þ °­Á¿¡¼­ °­ÀÇÇÏ°ÚÁö¸¸ /etc/services ÆÄÀÏ°ú /etc/inetd.conf ÆÄÀÏÀ» °Çµå·Á¼­ µ¥¸óÀ» Á¦¾îÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ÀÌ°ÍÀ» ÀÌ¿ëÇÏ¿© ¹éµµ¾î¸¦ ¸¸µé ¼ö°¡ ÀÖ½À´Ï´Ù. ¿©±â±îÁö.. Á¦ ¸ñ: [°­ÁÂ] Áß±Þ ½© ÇÁ·Î±×·¥ (1) ÇÔ¼öÆí [ Áß±Þ ½© ÇÁ·Î±×·¡¹Ö (1) ] ½© ÇÁ·Î±×·¡¹ÖÀ̶ó°í ÇÔ¼ö°¡ ¾øÀ»½î³Ä.. ÀÖ´Ù.. ¾ÆÁÖ °£´ÜÇÑ ÃÊ Æ¯±Þ ÇÔ¼ö¸¦ ¸¸µé ¼ö ÀÖ´Ù. mail() { } À§ÀÇ °æ¿ì°¡ ÇÔ¼öÀÌ´Ù. À§ÀÇ ÇÔ¼ö¸¦ È£ÃâÇÒ¶§´Â mail À̶ó°í¸¸ Çϸé È£ÃâµÈ´Ù. º¯¼ö´Â Àü¿ª º¯¼öó·³ ¸ðµç °÷¿¡¼­ ¾²ÀδÙ. ÇÔ¼ö¾È¿¡¼­¸¸ Áö¿ª º¯¼ö·Î ¾²ÀδÙ. ex ) $cat > a #!/bin/sh echo " Å×½ºÆ®¿ë ÇÁ·Î±×·¥ÀÔ´Ï´Ù." bbs() { echo -n "½ÃÀÛ ÇÏ°Ú½À´Ï±î? (Y/n)" read RE if [ "$RE" = "n" ] then exit fi echo "°è¼Ó ÇÕ´Ï´Ù." } bbs ^D $ ./a Å×½ºÆ®¿ë ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ½ÃÀÛ ÇÏ°Ú½À´Ï±î? (Y/n) y °è¼Ó ÇÕ´Ï´Ù. ÀÌ·± ½ÄÀÇ ÇÔ¼ö »ç¿ëÀÔ´Ï´Ù. »ó´çÈ÷ ½±ÁÒ? ÀÌ°ÍÀ» Á¦´ë·Î Çϸé Á»´õ È¿À²ÀûÀÎ ÇÁ·Î±×·¥À» © ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¯¸é ¾ÆÀ̵ð¿Í Æнº¿öµå¸¦ ¸ÂÃß´Â ÇÁ·Î±×·¥À» °£´ÜÈ÷ ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ­ ¸¸µé¾î º¾½Ã´Ù. $ cat > a #!/bin/sh echo "ÀÌ°ÍÀº ÀÎÁõ ÇÁ·Î±×·¥ÀÔ´Ï´Ù." id() { echo -n "´ç½ÅÀÇ ¾ÆÀ̵ð : " read id if [ "$id" = "loveyou" ] then passwd fi echo " ¾ø´Â ¾ÆÀ̵ð ÀÔ´Ï´Ù. " } passwd() { echo -n "´ç½ÅÀÇ ¾Ï È£ : " read pass if [ "$pass" = "lovelove" ] then echo "µùµ¿´ó~ ÃàÇÏ~ " exit fi echo "Æнº¿öµå°¡ Ʋ·È½À´Ï´Ù." exit } bbs ^D $ ./a ÀÌ°ÍÀº ÀÎÁõ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ´ç½ÅÀÇ ¾ÆÀ̵ð : loveyoufsd^?^?^?^?^? ¾ø´Â ¾ÆÀ̵ð ÀÔ´Ï´Ù. $ ./a ÀÌ°ÍÀº ÀÎÁõ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ´ç½ÅÀÇ ¾ÆÀ̵ð : loveyou ´ç½ÅÀÇ ¾Ï È£ : love Æнº¿öµå°¡ Ʋ·È½À´Ï´Ù. $ ./a ÀÌ°ÍÀº ÀÎÁõ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ´ç½ÅÀÇ ¾ÆÀ̵ð : loveyou ´ç½ÅÀÇ ¾Ï È£ : lovelove µùµ¿´ó~ ÃàÇÏ~ ÀÌ·¸°Ô µÇÁÒ. ½Å±âÇϳª¿ä? Á¶±Ý´õ ½Å±âÇÏ°Ô ÇÏ·Á¸é ¾ÏÈ£¸¦ ³Ö±â Àü¿¡ ÀÌ·± ¹®ÀåÀ» ³Ö¾îº¸¼¼¿ä stty -echo ±×¸®°í ³ª¼­ ¾ÏÈ£¸¦ ´Ù ¹ÞÀº ÈÄ¿¡ stty echo ÀÌ·¸°Ô ÇÏ¸é µÇ¿ä. À§¿¡¼­ -echo ´Â ŸÀÌÇÎÇÏ´Â °ÍÀÌ ¾Èº¸ÀÌ°Ô ÇÏ´Â °Å°í echo ´Â ŸÀÌÇÎÇÑ °ÍÀÌ º¸À̵µ·Ï ÇÏ´Â ¼³Á¤ÀÌ¿¡¿ä. ex) stty -echo echo -n "´ç½ÅÀÇ ¾Ï È£ : " read pass stty echo Á¦ ¸ñ: [°­ÁÂ] ³×Æ®¿÷ ¼³Á¤Çϱ⠿켱 ·¹µåÇÞ ¸®´ª½º¿¡¼­ÀÇ ¼³Á¤À» º¸ÀÚ.. ¾ÆÁÖ ½±´Ù. ¿ì¼± ·£Ä«µå¸¦ Àß Àâ¾ÆÁÖ¾î¾ß ÇÑ´Ù. ·£Ä«µå¸¦ Àß ÀâÀ¸·Á¸é Ä¿³Î ÄÄÆÄÀÏÀ» ´Ù½Ã ÇØ¾ß ÇÑ´Ù. Ä¿³Î ÄÄÆÄÀϽà ³×Æ®¿÷Ä«µå¿¡¼­ Àß ¼±ÅÃÀ» Çß´Ù°í °¡Á¤ÇÏ°í ³×Æ®¿÷ ¼³Á¤À» ÇÑ´Ù. ¸¸¾à ne2000 ȣȯ ·£Ä«µå°¡ ÀÖ´Ù¸é ÀνÄÇÏ´Â °ÍÀº Ä¿³Î ÄÄÆÄÀÏ ¾øÀÌ °£´ÜÇÏ°Ô ÀνĽÃų¼ö ÀÖ´Ù. Áï ÃÊâ±â ¼³Á¤µÈ »óÅ¿¡¼­ ¸»ÀÌ´Ù. ÀÌ·± ¸í·ÉÀÌ¸é µÈ´Ù. modprobe ne irq=·£Ä«µå irq ¹øÈ£ io=ÀÚ½ÅÀÇ io ¹øÈ£ ex) ³ªÀÇ ·£Ä«µå ¼³Á¤½Ã.. modprove ne irq=11 io=0x340 ÀÌ´Ù.. ÀÌ·¸°Ô Çؼ­ ·£Ä«µå¸¦ ÀÎ½Ä ½ÃÄ×´Ù. ±× ÈÄ¿¡ ³×Æ®¿÷ ¼³Á¤À» ÇØ¾ß ÇÑ´Ù. ¿ì¼±.. /etc/HOSTNAME À̶ó´Â ÆÄÀϾȿ¡ ÀÚ½ÅÀÇ µµ¸ÞÀÎÀ» ³Ö´Â´Ù. ±× ´ÙÀ½¿¡ /etc/hosts ¶ó´Â ÆÄÀÏ¿¡ 127.0.0.1 localhost localhost.localdomain xxx.xxx.xxx.xxx À̸§.µµ¸ÞÀÎ. À̸§ ex) 210.123.119.13 mud.bigtel.co.kr mud ±× ´ÙÀ½ÀÌ Áß¿äÇÏ´Ù. /etc/sysconfig/network ÆÄÀÏÀ» ¿¡µðÅÍ·Î ÆíÁýÇØ¾ß ÇÑ´Ù. ±× ÆÄÀϾȿ¡´Â ÀÌ·± ³»¿ëÀÌ µé¾î°¡¾ß ÇÑ´Ù. NETWORKING=yes HOSTNAME=¼­¹ö µµ¸ÞÀÎ (ex: mud.bigtel.co.kr ) DOMAINNAME=À̸§À» »« µµ¸ÞÀθ¸.. (ex: bigtel.co.kr) GATEWAY=ipÁÖ¼Ò ( ex: 210.123.119.254 ) GATEWAYDEV=eth0 ÀÌ·¸°Ô µé¾î°¡¸é µÈ´Ù. ±× ´ÙÀ½¿¡ ÆíÁýÇÒ ÆÄÀÏÀº /etc/sysconfig/network-scripts/ifcfg-eth0 À» ¿¡µðÅÍ·Î ºÒ·¯¿Â´Ù. DEVICE=eth0 IPADDR=¼­¹öÀÇ ip ¸¦ ³Ö´Â´Ù. ( ex: 210.123.119.13 ) NETMASK=255.255.255.0 º¸ÅëÀÌ·¸°Ô ÇÑ´Ù. NETWORK=ip ÁÖ¼Ò.255 ¿·ÀÇ ¿¹¸¦ µé¸é ( ex:210.123.119.255 ) ¾Ñ..´Ù½Ã À§¿¡²¨ Á¤Á¤ NETWORK=ip ÁÖ¼Ò.0 ( ex:210.123.119.0 ) BROADCAST=ipÁÖ¼Ò.255 ( ex : 210.123.119.255 ) ONBOOT=yes ÀÌ·¸°Ô ÇϸéµÇ¿ä. ÈÖ¸®¸¯. »ó´çÈ÷ ½±ÁÒ? º¸Åë ½½·¢ ¿þ¾î ¸®´ª½ºÀÇ °æ¿ì netconfig ¶ó´Â °ÍÀÌ ÀÖÁö¸¸ ¼öµ¿À¸·Î ÇØ¾ß ÇÒ °æ¿ì ÀÌ·¸°Ô ÇϸéµÇ°í¿ä. ¿¢½º À©µµ¿ì¿¡¼­ ÇÒ ¼öµµ ÀÖÁö¸¸ ±× ÀÌ°Ô ÆíÇÕ´Ï´Ù. Á¦ ¸ñ: [°­ÁÂ] IFS ¿¡ ´ëÇÑ.. ½©Àº ¸í·É¾îÀÇ Àμö¸¦ ºÐ¸®Çϱâ À§Çؼ­ IFS¶ó´Â ½©º¯¼ö¸¦ ÀÌ¿ëÇÑ´ç. ±×·¡¼­ º¸Åë IFS´Â °ø¹é , ÅÇ , °³Ç๮ÀÚ µîÀ» »ç¿ëÇÑ´Ù. ±×·±µ¥ ¸¸¾à¿¡ IFS = / ¶ó°í µÇ¾î ÀÖ´Ù¸é ¿ì¸®°¡ ÀÔ·ÂÇÑ /bin/sh ¶ó´Â ÆÄÀÏÀ» ½ÇÇà½ÃÄѺ¸¸é sh ÆÄÀÏÀÌ ½ÇÇàÀÌ µÇ´Â°Ô ¾Æ´Ï¶ó bin À̶ó´Â ÆÄÀÏÀÌ ½ÇÇàµÇ¸ç µÚÀÇ sh ÆÄÀÏÀº bin ÇÁ·Î±×·¥ÀÇ Àμö·Î ÀνÄÇÑ´Ù. Áï, main(int argc , **argv) ¿¡¼­ argv=[2]¸¦ sh ¶ó°í ÀνÄÇعö¸°´Ù. ±×·¯³ª ÀÌ·± ¹®Á¦¸¦ °ú°Å±îÁö´Â ÅëÇßÁö¸¸ Áö±ÝÀº ¾ÈÅëÇÑ´Ù. ±×Áß ÇØ°áÃ¥Áß Çϳª´Â ¾î¶² ÇÁ·Î±×·¥³»ÀÇ system()À̳ª popen() ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÇØ°áÇÒ¼ö ÀÖ´Ù. system("IFS=' \t\n'; export IFS; /bin/sort /tmp/name"); popen("IFS=' \t\n'; export IFS; PATH=/bin;/usr/bin echo test"); ¿©±â¼­ ½©º¯¼ö¸¦ Á¤ÀÇÇØÁ־ export¸í·ÉÀ» »ç¿ëÇÏÁö ¾Ê´ÂÀÌ»ó ½©ÀÌ ÀÌ°ÍÀ» ¹Þ¾Æ µéÀÌÁö ¾Ê´Â´Ù´Â °ÍÀ» À¯³äÇØ¾ß ÇÑ´Ù. Á¦ ¸ñ: [°­ÁÂ] C ¾ð¾î °­Á 1ºÎ ¹®¹ýÆí ¹®¹ý°ú ±×¿¡ µû¸¥ °£´ÜÇÑ ¿¹Á¦¸¦ ¼±º¸ÀÏ ¿¹Á¤ÀÔ´Ï´Ù. ±×¸®°í ÈçÈ÷ º¼¼ö ÀÖ´Â ¿¹Á¦, ¿¹¸¦ µé¸é Ç®´Ù¿î ¸Þ´º ¶ó´øÁö °£´ÜÇÑ µ¥ÀÌÅÍ º£À̽º¸¦ ´Ù·ê¼ö ÀÖ´Â °Í ȤÀº ÆÄÀÏ ÀÔÃâ·Â ¿¹Á¦µéÀ» ´Ù·ç°Ô µÉ °ÍÀÔ´Ï´Ù.. ±×¸®°í ºñµð¿À Ä«µå 󸮿¡ °üÇؼ­´Â ´Ù·çÁö ¾ÊÀ» »ý°¢ÀÔ´Ï´Ù. ºñµð¿À Ä«µå´Â °¢ ½Ã½ºÅÛ ¸¶´Ù ´Ù·ç°í ¶Ç À©µµ¿ì ÇÁ·Î±×·¥À¸·Î ³Ñ¾î°¡´Â ½ÃÁ¡¿¡¼­ ±»ÀÌ ÀÌ°ÍÀ» ´Ù·ê ÇÊ¿ä°¡ ÀÖ´Ù°í »ý°¢Ä¡ ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. 2. ÀÀ¿ëÆí ÀÌÁ¦±îÁö ¹è¿î ¹®¹ýµéÀ» ÀÌ¿ëÇØ ÀڷᱸÁ¶ ºÎºÐµé°ú ¼öÄ¡ Çؼ®À» ÇÏ´Â ºÎºÐÀ» ´Ù·ç°Ô µÉ °ÍÀÔ´Ï´Ù. 3. °´Ã¼ÁöÇâÆí C¾ð¾î¸¦ Á»´õ È®ÀåÇؼ­ °´Ã¼ÁöÇâ¾ð¾î C++¸¦ ´Ù·ç¾î º¼ ¿¹Á¤ÀÔ´Ï´. ---------------------------------------------------- ============================================================ ½ÃÀÛÇϱâ Àü¿¡ C¾ð¾î¸¦ »ç¿ëÇϴµ¥ ÀÖ¾î ÇÊ¿äÇÑ °ÍÀº compiler ¶ó°í ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. compiler´Â C¾ð¾î¸¦ ÄÄÇ»ÅÍ°¡ ¾Ë¾Æ µéÀ»¼ö ÀÖµµ·Ï ¸¸µé¾î ÁÖ´Â µµ±¸¶ó°í º¸¸é µË´Ï´Ù. ÀϹÝÀûÀ¸·Î ½±°Ô ±¸ÇÒ¼ö ÀÖ´Â °ÍÀÌ Turbo-C Àε¥ ÀÌ°ÍÀº ¾ð¾î°¡ ¾Æ´Ï°í Borland »ç¿¡¼­ ¸¸µç C¾ð¾î ¹ø¿ª±â ÀÔ´Ï´Ù. compile À̶õ ¸»Àº ¿µ¾î·Î ¹ø¿ªÀ̶õ ¶æÀÌ ÀÖ½À´Ï´Ù. ±×¸®°í BASIC °°Àº ¾ð¾î´Â interpreter¹æ½ÄÀ» »ç¿ëÇϴµ¥ interperter¿Í compileÀÇ Â÷ÀÌ´Â ¾ÕÀÇ °ÍÀº ¼Ò½º Äڵ带 Çϳª¾¿ ¹ø¿ªÀ» Çϸ鼭 ½ÇÇàÇÏ´Â ¹Ý¸é¿¡ µÚÀÇ °ÍÀº ¼Ò½º ÄÚµå Àüü¸¦ ¹ø¿ªÇÑ ÈÄ ½ÇÇàÄڵ带 ¸¸µç´ÙÀ½ ½ÇÇàÇÕ´Ï´Ù. ÀϹÝÀûÀÎ ÇÁ·Î±×·¥µéÀº ´ëü·Î compile ¹æ½ÄÀ» ÃëÇÏ°Ô µË´Ï´Ù. ÀÏ´Ü comileÀ» ÇÏ¸é ¸ñÀûÄÚµå(.obj) ¶ó´Â °ÍÀÌ ¸¸µé¾î ÁöÁÒ. ±×¸®°í ¸µÅ© ¶ó´Â °úÁ¤À» ÅëÇØ ½ÇÇà ÆÄÀÏ (.exe)°¡ ¸¸µé¾î Áý´Ï´Ù. ¿ì¸®°¡ ½ÇÇà ÇÏ´Â °ÍÀº ¸¶Áö¸· ´Ü°è±îÁö ÀÌ·ç¾î Áö°í ³­ÈÄ ¸¸µé¾îÁø *.exe ¸¦ ½ÇÇàÇÏ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í ¾ÕÀ¸·ÎÀÇ ¸ðµç ÄÚµå´Â ¿©·¯ºÐÀÌ ¾î¶² ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÏ´øÁö »ó°ü¾øÀÌ ¿¹Á¦ Äڵ带 ¸¸µé »ý°¢ÀÔ´Ï´Ù. °£È¤ MS-C ¶ó´øÁö VISUAL C++·Î ÄÄÆÄÀÏ Çϼŵµ »ó°ü¾øÀ» °ÍÀÔ´Ï´Ù. Âü°í·Î Á¦°¡ »ç¿ëÇÏ´Â ÄÄÆÄÀÏ·¯´Â º¼·£µå C++ 3.1 ÀÔ´Ï´Ù. =============================================================== Á¦ 1ºÎ ¹®¹ýÆí °¡Àå °£´ÜÇÑ ÇüÅÂÀÇ C program À» ¸¸µé¾î º¸°Ú½À´Ï´Ù. ÀÌ ¿¹Á¦´Â C¶ó´Â ¾ð¾î¸¦ ¸¸µç ¾ÆÀú¾¾°¡ ¸¸µé À¯¸íÇÑ ¿¹Á¦À̱⵵ ÇÏÁÒ.. (^_^) #include main() { printf("Hello World\n"); } ÀÌ ÄÚµå·Î compileÇÏ°í link Çϸé È­¸é¿¡ ¸ÚÀÖ´Â °á°ú°¡ ³ªÅ¸³¯ °Ì´Ï´Ù. ¥§!~.. Àúµµ ¸Ç óÀ½¿£ ¹«Ã´ ½Å±âÇÏ°í ³Ê¹« Áñ°Å¿üÁÒ.. Ȥ ÄÄÆÄÀÏ ¹æ¹ýÀ» ¸ð¸£½Ã´Â ºÐÀº °³ÀÎ ¸ÞÀÏÀ» ÁÖ½Ã¸é µË´Ï´Ù. Ȥ turbo-c ¸¦ »ç¿ëÇϽŴٸé ctrl+F9 ÇÏ½Ã¸é ¸ðµç°Ô ÇØ°áÀÌ µÇÁÒ. °á°ú: Hello World ÀÌÁ¦ºÎÅÍ´Â À§ ¿¹Á¦¸¦ ¼³¸íÇϱâ·Î ÇÏÁÒ.. #include ÀÌ°ÍÀº C¾ð¾î¿¡¼­ »ç¿ëÇÏ°í ÀÖ´Â standard input/output ¶óÀ̺귯¸®¸¦ À§ÇØ ÇÊ¿äÇÑ ¶óÀÎÀÔ´Ï´Ù. ¹Ù·Î printf() ÇÔ¼ö°¡ ¿©±â¿¡ Á¤ÀǵǾî ÀÖÁÒ. ÀÌ·¸°Ô ¿©·¯ ÇÔ¼ö Á¤Àdzª ÀÚ·áÀÇ Á¤º¸°¡ ´ã°Ü ÀÖ´Â ÆÄÀÏÀ» Çìµå ÆÄÀÏÀ̶ó°í ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î È®ÀåÀÚ¸¦ .h ¸¦ »ç¿ëÇÏÁÒ. Áß¿äÇÑ °ÍÀº stdio.h ´Â ÀÌ ÄÄÆÄÀÏ·¯°¡ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â Çìµå ÆÄÀÏÀ̱⶧¹®¿¡ < > ·Î¼­ °¨½ÎÁÖ¾î¾ß ÇÕ´Ï´Ù. main() ÀÌ ºÎºÐÀº main() ÇÔ¼öÀÇ Á¤ÀÇ¹× ¼±¾ðÀÔ´Ï´Ù. Á¤ÀÇ¿Í ¼±¾ðÀº ´ÙÀ½¿¡ ´Ù·ç±â·Î ÇÏ°í ¾î·µç C ¾ð¾î´Â ¹«Á¶°Ç ½ÃÀÛÀ» main()ÇÔ¼öºÎÅÍ ÇÕ´Ï´Ù. ¸¸¾à¿¡ main() ÀÌ ¾øÀ¸¸é ¿¡·¯°¡ »ý±âÁÒ.. { printf("Hello World\n"); } ¿©±â¼­ º¸¸é ºí·° ±âÈ£°¡ ÀÖÁÒ. C¾ð¾î´Â ¸ðµç ºÎºÐÀÌ ºí·°´ÜÀ§·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù. ±×·¡¼­ ÇÔ¼ö¸¦ ½ÃÀÛÇÏ¸é ¸ÕÀú ÇÔ¼öÀ̸§À» ¾²°í ±×·±´ÙÀ½¿¡ { .. } ºí·° ±âÈ£¸¦ »ç¿ëÇؼ­ ±× ¾È¿¡ ¿©·¯ ³»¿ëÀ» ±â¼úÇÑ ´ÙÀ½¿¡ ´Ù½Ã ºí·°À» ´Ý½À´Ï´Ù. ±×¸®°í ¿©±â¿¡ printf("Hello World\n"); ¶óÀÎÀÌ Àִµ¥ ÀÌ°ÍÀ» Ãâ·ÂÀ» À§ÇÑ ÇÔ¼ö ÀÔ´Ï´Ù. C ¾ð¾î ÀÚü¿¡´Â printf() ÇÔ¼ö°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ°ÍÀ» ÇÔ¼öÀÌÁÒ.. C ¾ð¾î´Â ¸ðµÎ ÇÔ¼öµé·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù. ±×·¡¼­ ¸¸µé±âµµ ½±ÁÒ.. ¸ðµÎ ÇÊ¿äÇÑ ±â´ÉÀ» ¿øÇÏ´Â À§Ä¡¿¡ ¸¸µé°í ºÒ·¯ »ç¿ëÇϱ⸸ ÇÏ¸é µÇ´Ï±î¿ä.. Ȥ ´Ù¸¥ ¹®ÀåÀ» Ãâ·ÂÇϱâ À§Çؼ­´Â 'Hello World' ´ë½Å¿¡ ´Ù¸¥ ¹®ÀåÀ» ³Ö¾î ÁÖ¸é µË´Ï´Ù. ¸¶Áö¸·¿¡ ÀÖ´Â '\n' Àº Ãâ·ÂÀ» ³¡³»°í »õ·Î¿î ¶óÀÎÀ» ¸¸µé¶ó´Â ¶æÀÔ´Ï´Ù. ±×¸®°í Áß¿äÇÑ °ÍÀº ¸¶Áö¸·ÀÇ ¼¼¹ÌÄÝ·ÐÀÔ´Ï´Ù. ÀÌ°ÍÀº ÇÑ ¶óÀÎÀÌ ³¡³µ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ¸¸¾à¿¡ ÀÌ°ÍÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é ¹«¼öÇÑ ¿¡·¯°¡ »ý±âÁÒ. ±×·¡¼­ Ãʺ¸ÀںеéÀÌ °í»ýÇÏ´Â °ÍÁß¿¡ ÇϳªÀ̶ø´Ï´Ù. Àúµµ °í»ýÇÑ °æÇèÀÌ Á¤¸» ¸¹½À´Ï´Ù.. À̻󿡼­ ÄÄÆÄÀÏ ÇÏ°í ¸µÅ©ÇÏ´Â °úÁ¤¿¡¼­ ¿¡·¯°¡ ÀÖ´Ù¸é ´ÙÀ½À» Á¡°ËÇØ º¸¼¼¿©.. (1) ´ë¼Ò¹®ÀÚ ±¸º°À» Á¦´ë·Î Çߴ°¡? (¸ðµÎ ¼Ò¹®ÀÚÀÔ´Ï´Ù) (2) ¹®ÀåÀÇ ¸¶Áö¸·¿¡ ¼¼¹ÌÄÝ·Ð(;)À» Á¦´ë·Î ºÙ¿´´Â°¡? ±×·¡µµ ÀÌ»óÀÌ ÀÖ´Ù ±×·¯¸é Áï°¢ Áú¹®ÇØ ÁÖ¼¼¿©.. ´ÙÀ½Àº ÀÚ·áÇüÀ» »ìÆì º¸±â·Î ÇÏÁÒ.. C¾ð¾îÀÇ ÀÚ·áÇüÀº IBM PC(16 Bit Computer)±âÁØÀ¸·Î (1) ¹®ÀÚÇü : char (2) Á¤¼öÇü : int (3) ½Ç¼öÇü : float (4) voidÇü : void ÀÇ ³×°¡Áö°¡ ÀÖ½À´Ï´Ù. char Çü charÇüÀº ¹®ÀÚ¸¦ ´Ù·ç±â À§ÇØ »ç¿ëµÇ¾îÁö´Â ÀÚ·áÇüÀÔ´Ï´Ù. º¸Åë 1 Byte·Î »ç¿ëµÇÁÒ.. ÀÌ 1 Byte´Â ÃÑ 8ºñÆ®, ±×·¯´Ï±î 2^8 = 256. Áï 0-255±îÁö »ç¿ëÇÒ¼ö ÀÖ´Â ÀÚ·áÇüÀÔ´Ï´Ù. 0-255 À̸é ASCII Äڵ带 Ç¥ÇöÇÒ ¼ö ÀÖÁÒ. ÄÄÀ» ¸¸µç »ç¶÷µéÀÌ ¹Ì±¹¾ÖµéÀÌ´Ù º¸´Ï ¾î¿¼ö ¾øÀÌ ASCII¸¦ »ç¿ëÇϴµ¥ ±× ÄÚµå´Â 0 - 255±îÁö ¸¸µé¾î ÀÖ½À´Ï´Ù. ±×·¡¼­ char ÇüÀ» »ç¿ëÇÏ¸é ±× ÄÚµåµéÀ» ÀÌ¿ëÇÒ¼ö ÀÖ´ä´Ï´Ù. ¿¹¸¦ µé¾î 65¶ó°í ÇÏ´Â ¼ýÀÚ´Â ASCII ÄÚµå·Î 'A' ¿¡ ÇØ´çÇÏ´Â ¹®ÀÚÀÔ´Ï´Ù. int Çü ¸» ±×´ë·Î Á¤¼öÇüÀÔ´Ï´Ù. Á¤¼ö¸¦ ´Ù·ç±â À§ÇØ ¸¸µé¾î Áø ÀÚ·áÇüÀÔ´Ï´Ù. ´ëü·Î 2 ByteÀ» »ç¿ëÇÕ´Ï´Ù. ÃÑ 2^16 = 65536 ÀÇ ¼ö¸¦ Ç¥ÇöÇÒ¼ö ÀÖ½À ´Ï´Ù. float Çü ½Ç¼öÇüÀ» ´Ù·ç±â À§ÇØ ¸¸µé¾îÁø ÀÚ·áÇüÀÌÁÒ.. º¸Åë 4 Byte¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ°ÍÀº Áö¼öºÎ Ç¥ÇöÀ» À§ÇØ 8ºñÆ®, °¡¼öºÎ¸¦ À§ÇØ 23ºñÆ®¸¦ »ç¿ëÇÕ´Ï´Ù. ±×¸®°í 1ºñÆ®¸¦ ºÎÈ£ÀÇ Ç¥ÇöÀ» À§ÇØ »ç¿ëµÈ´ä´Ï´Ù. void Çü ÀÌ°ÍÀº ¾î¶² ÀÚ·áÇüµµ ¾Æ´Õ´Ï´Ù. ±×³É ºñ¾î ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù. ´Ù¸¥ ½ÄÀ¸·Î Ç¥ÇöÇÏ¸é ¾î¶² ÀÚ·áÇüÀ¸·Îµµ ¹Ù²ð¼ö ÀÖ´Ù´Â ¾ê±âµµ µÇÁÒ.. ±×·¸Áö¸¸ º¯¼ö¸¦ ÀÌ void ÇüÀ¸·Î ¼±¾ðÇÒ¼ö´Â ¾ø½À´Ï´Ù. ÇÔ¼ö¿¡¼­ ¾î¶² °ªÀ» µÇµ¹ ¸®°íÀÚ ÇÒ¶§ ¾Æ¹«°Íµµ µÇµ¹¸®Áö ¾ÊÀ¸·Á¸é ÀÌ°ÍÀ» »ç¿ëÇÏ¸é µË´Ï´Ù. ¾ÕÀ¸·Î ¹è¿ö³ª°¡¸é¼­ ÀÌ°Í¿¡ ´ëÇÑ ¼³¸íÀ» Çϱâ·Î ÇÏÁÒ. ±×¸®°í ºÎÈ£¸¦ ´Ù·ç±â À§ÇØ °¢ Å°¿öµå ¾Õ¿¡´Â signed, unsigned, long °¡ ºÙÀ»¼ö ÀÖ½À´Ï´Ù. µ¡ºÙ¿© short °¡ ÀÖÁö¸¸ ÀÌ°ÍÀº IBM-PC¿¡¼­´Â »ý·«Çصµ º° »ó°ü¾ø½À´Ï´Ù. ¸ðµç ÀÚ·áÇüÀº ¸Ç¾ÕÀÇ ºñÆ®¸¦ (MSB) ºÎÈ£ Ç¥ÇöÀ» À§ÇØ »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù. signedÀÎ °æ¿ì¿¡´Â MSB(Most Significant Bit, ÃÖ°í ³ôÀº bit)°¡ 0ÀÌ¸é ¾ç, 1À̸é À½À» Ç¥ÇöÇϱ⠶§¹®¿¡ ±×³É char À» »ç¿ëÇϽŴٸé -128 ~ 127 ±îÁö »ç¿ëÇÒ¼ö ÀÖ½À´Ï´Ù. (0ÀÌ Æ÷ÇԵǹǷΠ127±îÁö) unsigned´Â ÀÚ·á°¡ À½¼ö°¡ »ç¿ëµÇÁö ¾ÊÀ» °æ¿ì¿¡ »ç¿ëµË´Ï´Ù. unsigned char ¸¦ »ç¿ëÇÑ´Ù¸é 0-255±îÁö »ç¿ëÇÒ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í C¾ð¾î¿¡¼­´Â ±×³É char À̶ó°í ¼±¾ðÇϸé ÀÚµ¿À¸·Î signed¶ó°í ÀνÄÇÕ´Ï´Ù. ±×¸®°í longÀ» »ç¿ëÇϸé ÇöÀç »ç¿ëÇÏ´Â ¹ÙÀÌÆ®ÀÇ 2¹è¸¦ ³ªÅ¸³À´Ï´Ù. ¿¹¸¦ µé¸é long (int), long double µîÀÌ ÀÖÁÒ. ±×·¯¸é ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸µµ·Ï ÇÏÁÒ.. À̹øÀÇ °á°ú´Â »ó´çÈ÷ ƯÀÌÇÑ °á°ú¸¦ º¸ÀÏ°ÍÀÔ´Ï´Ù. /* IBM-PC 16 ºñÆ® ¸Ó½ÅÀÏ °æ¿ì */ #include main() { char a; unsigned char b; a = -1; b = -10; printf("a = %d, b = %d \n", a, b); } ÀÇ ÇÁ·Î±×·¥ÀÇ °á°ú´Â a = 255, b = 246 À§ °á°ú´Â Á¤¸» ƯÀÌÇÏÁÒ.. ÀÌ°Ô ¿Ö ÀÌ·±Áö ¾Æ½Ã´Â ºÐÀº C ¾ð¾î¸¦ »ó´çÈ÷ ÇÏ°í ÀÖ´Ù°í ºÁµµ µÉ°Í °°½À´Ï´Ù. ±×·³ ºÐ¼®À» ÇØ º¸µµ·Ï ÇÏÁÒ.. -1 = (1111 1110) (2Áø¼ö) (255 + (-1) + 1 ) -10 = (1111 1010) (2Áø¼ö) (255 + (-10) + 1) -3 1111 1100 -2 1111 1101 -1 1111 1110 0 0000 0000 1 0000 0001 2 0000 0010 3 0000 0011 ¿Ö ÀÌ·±°í ÇÏ´Ï ÄÄÀº »¬¼ÀÀ» ÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ´ë½Å º¸¼ö °è»êÀ̶õ ¹æ½ÄÀ¸·Î µ¡¼ÀÀ» ÇÏÁÒ.. Áï -1ÀÇ º¸¼ö´Â À§¿Í °°Àº 1111 1110 À̶ø´Ï´Ù.. ±Ùµ¥ printf() ÇÔ¼ö ¶õ ³à¼®Àº Ãâ·ÂÇÒ ¶§ ¿ÀÁ÷ %d ½ÊÁø¼ö Ãâ·ÂÀ¸·Î¸¸ Çϱ⠶§¹®¿¡ 255 ÇÏ°í 246À̶õ °á°ú°¡ ³ª¿À´Â °ÍÀÔ´Ï´Ù. ¿À´ÃÀº ¿©±â±îÁö¸¸.. No.234 À̸§:À̳²Ã¶ ÀÌ¿ëÀÚ¹øÈ£:nextstep ÀϽÃ:11/13 17:35 ÃÑÂʼö:29 Á¦¸ñ:[°­ÁÂ] C¾ð¾î¸¦ ¹è¿î´Ù/3 °Ë»ö¾î:°­Á -------------------------------------------------------------------------- -- À̹ø¿¡´Â Á¦¾î±¸Á¶¿¡ ´ëÇØ ¾Ë¾Æº¸µµ·Ï ÇÏÁÒ. Á¦¾î¹®À̶õ ÇÁ·Î±×·¥ÀÇ È帧ÀÇ ¹Ù²Ù´Â ¸í·É¹®À» ¸»ÇÏÁÒ. ±× Á¾·ù´Â ¾Æ·¡¿Í °°½À´Ï´Ù . if .. else switch .. case for while do - while goto break continue ÀÌÁß¿¡¼­ goto ¹®ÀÇ °ÅÀÇ »ç¿ëÀ» ÇÏÁö ¾Ê½À´Ï´Ù. ¾Æ´Ï »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÏ´Â °ÍÁßÀÇ ÇϳªÀÔ´Ï´Ù. ¾î¶µç »ç¿ë¹ýÀº ¾Æ·¡¿Í °°½À´Ï´Ù. goto ¹® ( goto label; ) goto¹®Àº ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ÁöÁ¤µÈ ·¹À̺íÀÌ ÀÖ´Â À§Ä¡·Î °­Á¦·Î ¿Å±â´Â ¸í·É¾îÀÔ ´Ï´Ù. ·¹À̺í¸í µÚ¿¡´Â ¹Ýµå½Ã :¸¦ ºÙÀ̸ç,goto¸í·É°ú °áÇÕµÈ ·¹ÀÌºí µÚ¿¡´Â :¸¦ ºÙÀÌÁö ¾Ê½À´Ï´Ù. À̹ø¿¡´Â for ¹®À» º¸µµ·Ï ÇÏÁÒ. for(ÃʱâÄ¡;ºñ±³;Áõ°¨Ä¡) { ... } ¿¹Á¦¸¦ º¸¸é¼­ ´õ ¼³¸íÀ» Çϵµ·Ï ÇÏÁÒ. /* ÀÌ ¿¹Á¦´Â 1ºÎÅÍ 100±îÁöÀÇ ÇÕÀ» ±¸ÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. */ #include main() { int n; int sum =0; for(n=1;n<=100;n++) { sum = sum + n; } printf("\n sum is = %d", sum); printf("\n n = %d", n); } ½ÇÇà °á°ú´Â sum is = 5050 n = 101 ÀÔ´Ï´Ù. ¿¹Á¦¿¡¼­ º¼¼ö ÀÖµíÀÌ for¹®Àº ÃʱâÄ¡ n = 1 ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù. ±×¸®°í nÀÌ 100°ú °°À» ¶§±îÁö °è¼Ó ¹Ýº¹ÇÏ°Ô µË´Ï´Ù. ¸¸¾à for¹® ºí·°¾È¿¡ ½ÇÇàÇÒ ¹®ÀåÀÌ ÇÑ ¹®ÀåÀ¸·Î Ãæ ºÐÇÏ´Ù¸é ºí·° ±âÈ£¸¦ »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ±×¸®°í nÀÌ 101ÀÌ µÇ´Â ÀÌÀ¯´Â °£´ÜÇÕ´Ï´Ù. f or¹®ÀÇ ½ÇÇà¼ø¼­¸¦ º¸¸é ¸ÕÀú ÃʱâÄ¡¸¦ ¼³Á¤ÇÑ ÈÄ ±× ´ÙÀ½ ºñ±³¸¦ ÇÕ´Ï´Ù. ÂüÀÌ¸é ºí·°¾ÈÀÇ ¹®ÀåÀ» ½ÇÇàÇÏ°í ±× ´ÙÀ½ Áõ°¨À» ÇÕ´Ï´Ù. ´Ù½Ã ºñ±³ÇÏ°í ½ÇÇàÇÏ°í Áõ°¨ÇÏÁÒ.. ÀÌ·±½ÄÀ¸·Î ÁøÇàµÇ±â ¶§¹®¿¡ nÀº 100ÀÌ ¾Æ´Ï¶ó 101ÀÌ µÇÁÒ. n++ ´Â n = n+1 °ú °°Àº °á°ú¸¦ ³ªÅ¸³À´Ï´Ù. ¿ä°ÇÀº ³ªÁß¿¡ ¿¬»êÀÚ°¡ °¡¼­ Á» ´õ »ó¼¼ÇÏ°Ô ¼³¸íÇÏÁÒ.. À̹ø¿¡´Â if .. else ¹®À» º¸µµ·Ï ÇսôÙ. if(Á¶°Ç) { .. } else { .. } °£´ÜÇÑ ±¸Á¶ÁÒ.. À½.. óÀ½¿¡ Á¶°ÇÀ» °Ë»çÇÑ ´ÙÀ½¿¡ ÂüÀÌ¸é ±× Ã³À½ ºí·°À» ¾Æ´Ï¸é else ¿¡ ÀÖ´Â ºí·°À» ½ÇÇàÇÏ°Ô µÇ´Â ±¸Á¶ÀÔ´Ï´Ù. ¿©±â¼­ else¹®À» ¾ø¾îµµ ¹«¹æÇÕ´Ï´Ù. ±×·¸Áö¸¸ ¾ÕÀÇ °æ¿ì¿Í ´Ù¸¥ 󸮸¦ ¿øÇÑ´Ù¸é ²À ÇÊ¿äÇÏ°ÚÁÒ.. ±×·³ ¿¹¸¦ º¸µµ·Ï ÇÏÁÒ. À̹ø¿¡ ¿¹Á¦´Â ÀԷ¹ÞÀº ¼ýÀÚ°¡ Ȧ¼ö ÀÎÁö ¾Æ´Ï¸é ¦¼öÀÎÁö È®ÀÎÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï ´Ù. ÁغñÇÏ½Ã°í ½î¼¼¿ä.. ^^; #include main() { int a; scanf("%d", &a); if (a % 2 == 0) printf("\n Input data is even..."); else printf("\n InPut data is odd..."); } ¾ÆÁÖ °£´ÜÇÑ ÇÁ·Î±×·¥ÀÌÁÒ.. ¾Ñ ±×·±µ¥.. ¸ø º¸´ø ¿¬»êÀÚ°¡ Àֳ׿ä.. == ¿¬»êÀÚ¿Í % ¿¬»êÀÚ ÀÌÁÒ.. ¾Õ¿¡ °ÍÀº ´ëÀÔ¿¬»êÀÚ°¡ ¾Æ´Ï¶ó °°Àº°¡¸¦ ¹¯´Â ¿¬»êÀÚÀÌ°í µÚÀÇ °ÍÀº ³ª¸ÓÁö ¿¬»êÀÚ ÀÔ´Ï´Ù.. Áï ¾î¶² ¼ö¸¦ ¾ó¸¶·Î ³ª´©¸é »ý±â´Â ³ª¸ÓÁö¸¦ °è»êÇØ ÁÖ´Â ¿¬»êÀÚÀÔ´Ï´Ù. ¸¸¾à ÀÔ·Â ¹Þ¾Ò´ø ¼ýÀÚ°¡ 11ÀÌ¿´´Ù¸é À§ÀÇ °á°ú¸¦ ¾Æ·¡¿Í °°°ÚÁÒ. 11 Input data is odd... ÀÌ°ÍÀº 11%2 = 1 À̱⶧¹®¿¡ else ºí·°ÀÌ ½ÇÇàµÇ°ÚÁÒ. ¸¸¾à ÀÌ ¿¬»êÀÚ°¡ ¸¶À½¿¡ ¾È µç´Ù¸é ´Ù¸¥ ¹æ¹ýÀ» »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.. ÀÚ·áÇüÀÇ Æ¯¼ö¼ºÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. if ¹®ÀÇ Á¶°ÇÀ» ÀÌ·¸°Ô ¹Ù²ã º¸¼¼¿ä. a / 2 * 2 == a À½.. Ȥ ÀÌÇØ°¡ °¡½Ã´Â ºÐ ¼Õ µå¼¼¿ä.. À¹.~~ ÀÌ·¸°Ô ³õÀº ½Ç·ÂÀ» °¡Áö°í °è½ÅºÐÀÌ ÀÖ´Ù´Ï.. ÀÌÁ¦ ÇÏ»êÇصµ µÇ°Ú³×¿ä.. ÀÌ ´Ü¿ø¸¸ ^^; ¼³¸íÀ» ÇÏÀÚ¸é º¯¼ö a´Â Á¤¼öÀÌÁÒ.. ±×·¡¼­ ¸ÕÀú ³ª´©±â 2¸¦ ½ÇÇàÇÏ¸é ¼Ò¼öÁ¡ÀÌÇÏ´Â ¸ðµÎ Àß·Á ¾ø¾îÁö°Ô µÇ´Â °Ì´Ï´Ù. ¸¸¾à ÀÔ·Â ¹ÞÀº ¼ýÀÚ°¡ ¦¼öÀ̶ó¸é ³ª´©±â 2, °ö Çϱâ 2¸¦ ½ÇÇàÇÑ´Ù°í Çصµ º¯È­°¡ ¾øÁÒ. ¹Ý¸é¿¡ Ȧ¼ö¶ó¸é ³ª´©±â 2¸¦ ÇÏ°í °öÇϱ⸦ ÇÏ¸é ¿µ °á°ú°¡ ´Þ¶óÁö°Ô µË´Ï´Ù.. 11 / 2 = 5 5 * 2 = 10 ÀÌÁ¦ ¿ÏÁÔÈ÷ ¾Æ½Ã°Ú½À´Ï±î? ÀÌ Äڵ带 Á» ÁªÀÖ°Ô ¹Ù²ãº¸ÁÒ.. ¾Æ·¡Ã³·³ if ºí·°À» ¹Ù²Ù´Â °Ì´Ï´Ù. if ( a % 2 ) printf("\n Input data is odd..."); else printf("\n Input data is even..."); ¿ä°ÍÀÌ ¹«¾ùÀΰ¡ Çϸé C¾ð¾î¿¡¼­ ºñ±³ÇÏ´Â ¹æ¹ýÀ» ÇÑ´«¿¡ º¸¿©ÁÖ´Â °Ì´Ï´Ù. C¾ð¾î¿¡ ¼­ ÂüÀº 0 ÀÌ ¾Æ´Ñ ¸ðµç ¼ýÀÚ°¡ ¿À¸é ÂüÀÌ µË´Ï´Ù. ¹Ý´ë·Î ´ç¿¬È÷ 0 ÀÌ¸é °ÅÁþÀÌ µÇ´Â °Å°ÚÁÒ. ¶Ç ³ªÁß¿¡ NULL À» ¹è¿ì½Ã°ÚÁö¸¸ NULL ¿ª½Ã °ÅÁþÀÌ µË´Ï´Ù. ±×·³ ¿ä·± ¿¹¸¦ º¸½ÃÁÒ. #include main() { if ( 1 ) printf("\n ÀÌ°Ç ÂüÀÔ´Ï´Ù.."); else printf("\n ¿ä°Ç °ÅÁþÀÌ´ç°¡.. "); } °á°ú´Â À½.. ¸»¾ÈÇصµ µÉ °Í °°³×¿ä.. ¸ð¸£½É Çѹø Çغ¸½Ã´Â °Íµµ ±¦Âú½À´Ï´Ù.. ´Ù¸¥ ¿¹¸¦ Çѹø º¼²²¿ä.. #include { int a, b, c; int max; scanf("%d %d %d", a, b, c); if ( a > b ) { if ( a > c ) max = a; else max = c; } else if ( b > c ) max = b; else max = c; printf("\n Max = %d", max); } ÀÌ°ÍÀº ¼¼ ¼ö Áß¿¡¼­ Á¦ÀÏ Å« °ªÀ» ã¾Æ³»´Â °Ì´Ï´Ù. º¸½Ã¸é else if ¹®ÀÌ ³ª¿À´Âµ¥ º° ƯÀÌÇÑ °ÍÀº ¾ø½À´Ï´Ù. ±¸¹®À» ¾µ¶§ º£ÀÌÁ÷ó·³ ºÙ¿©¼­ »ç¿ëÇÏ½Ã¸é ¾ÈµÈ´Ù´Â °Å ÁÒ. ÀÚ.. ÀÌÁ¦ while ¹®ÀåÀ» ¹è¿öº¾½Ã´Ù.. Á¦°¡ Á¦¾î¹®¿¡¼­ °¡Àå ¸¹ÀÌ »ç¿ëÇÏ°í ÀÖ´Â °Ì´Ï´Ù. ¾î¶² ºÐµéÀº do - while ÀÌ ÁÁ´Ù°í ÇϽôµ¥ Àü ÀÌÁ¦ ÁÁ³×¿ä.. ±¸¹®Àº ¾Æ·¡¿Í °°½À´Ï´Ù. while (Á¶°Ç) { ... } Á¶°ÇÀÌ ÂüÀÎ µ¿¾È¿¡´Â ºí·°¾ÈÀ» °è¼Ó ¼öÇàÇÏ°Ô µË´Ï´Ù. ¾Æ´Ï¸é ºí·°À» ¹þ¾Æ³ª°Ô µÇ ÁÒ.. À½.. 1 ºÎÅÍ 100 ±îÁöÀÇ ÇÕÀ» ±¸ÇÏ´Â while ¿¹Á¦ÀÔ´Ï´Ù. #include main() { int i=1; int sum = 0; while (i<=100) { sum = sum + i; i++; } printf("\n sum = %d", sum); } ÷¿¡ i=1 ºÎÅÍ ½ÃÀÛÇÏ°í sumÀº 0À¸·Î ÃʱâÈ­, ±×¸®°í ³ª¼­ while ¹®¿¡ µµ´ÞÇÏÁÒ. ¸Õ Àú i°¡ 100º¸´Ù ÀÛÀ¸¹Ç·Î while ºí·°¾ÈÀ» ½ÇÇà.. ±×·¯¸é sumÀº Â÷·Ê·Î i °ªÀ» ´õÇØ°¡°Ô µÉ °Ì´Ï´Ù. ÀÌÁ¦ i°¡ 101ÀÌ µÇ¸é ±× ¹®ÀåÀ» ¹þ¾î³ª°ÚÁÒ.. Áß¿äÇÑ °ÍÀº ¿©±â±îÁö sumÀº ¸ðµÎ 100 ±îÁö ÇÕÀ» °¡Áö°í ÀÖÀ» °Ì´Ï´Ù. Á¦¾î±¸¹®ÀÇ Á¦¾îº¯¼ö´Â Áß¿äÇϹǷΠ¾ó¸¶±îÁö °è»êµÇ´ÂÁö Á¤È®ÇÏ°Ô ÇØ µÑ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ±×¸®°í Ãâ·Â.. °á°ú´Â ¾ÕÀÇ for¹®°ú °°Àº sum = 5050 ÀÌ ³ª¿Â´ä´Ï´Ù.. ^^; À½. ±×·¯¸é À§ÀÇ ¿¹¸¦ Á» ´õ ÀÀ¿ëÇؼ­ /* 1+(1+2)+(1+2+3)+...+(1+2+3+...+100)ÀÇ ÇÕÀ» ±¸ÇÏ´Â ÇÁ·Î±×·¥ */ #include main() { int i; long part_sum, total_sum; i = 1; part_sum = total_sum = 0; whiile (i<=100) { n = n + i; sum = sum + n; i++; } printf("ÇÕ°è = %ld\n",total_sum); } ÀÌÁ¦ ºÐ¼®À» ÇØ¾ß ÇÒ ½Ã°£À̱º¿ä. part_sum = total_sum = 0;Àº total_sum¿¡ 0À» ´ëÀÔÇÏ°í, total_sum °ªÀ» ´Ù½Ã part_sum¿¡ ´ëÀÔÇ϶ó´Â ÀǹÌÀÔ´Ï´Ù. ÀÌ°ÍÀº ¿¬»êÀÚÀÇ °áÇÕ¼º¿¡ ÀÇÇØ ÀϾ´Â °ÍÀÔ´Ï´Ù. ¿¬»êÀÚÀÇ ¿ì¼±¼øÀ§¿Í °áÇÕ¼ºÀº ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§ ¾ÆÁÖ Áß¿äÇѵ¥ ÀÏ´Ü »ý·«ÇÏ°í ±×³É °£´ÜÈ÷ ´ëÀÔ¿¬»êÀÚ = ´Â ¿ì°áÇÕ¼ºÀ» °¡Áø´Ù°í ¾Ë°í ÀÖÀÚ. ´Ù¸¥ ¿¹¸¦ º¼±î¿ä? a = b = c = d = e = 1; ¸ÕÀú e¿¡ 1À» ´ëÀÔÇÏ°í, ´Ù½Ã e¸¦ d¿¡, d¸¦ c¿¡ ¿ä·± ½ÄÀ¸·Î ´ëÀÔÀÌ µÇÁÒ.. À½. ±×·¸Áö¸¸ ¾ÕÀÇ ¿¹¿¡¼­ º¸´Ù½ÃÇÇ º¯¼ö ¼±¾ð¶§´Â ¿¬¼ÓÀ¸·Î ´ëÀÔÀ» ÇÏ¸é ¾ÈµË´Ï´Ù. ¿ä·¸°Ô ¸»ÀÌÁÒ. int i=j=0; ÀÌÁ¦ Á¦¾î ±¸¹®ÀÌ °ÅÀÇ ¸·¹ÙÁö¿¡ À̸£·¶³×¿ä.. ±×·³ switch - case ¸¦ ¹è¿öº¸ÁÒ. switch .. case¹® (¼±ÅÃÁ¦¾î¹®) switch (º¯¼ö ³ª ½Ä) { case ½Ä1: ..... break; case ½Ä2: ..... break; .... .... case ½Än: ..... break; default: .... } ¿©±â¼­ ½ÄµéÀº ¹Ýµå½Ã »ó¼ö³ª »ó¼ö½ÄÀ̾î¾ß ÇÕ´Ï´Ù. ¾Æ´Ô ¿¡·¯°¡ »ý±âÁÒ. switch¹®¾ÈÀÇ º¯¼ö³ª ½ÄÀ» ó¸®ÇÑ´ÙÀ½ ±× °á°ú·Î¼­ °¢ case¹®À» ã¾Æ°¡°Ô µË´Ï´Ù. ¸¸¾à °ªÀÌ ÀÏÄ¡ÇÏ´Â °÷ÀÌ ¾øÀ¸¸é default´ÙÀ½ÀÇ ¹®ÀåÀ» ¼öÇàÇÕ´Ï´Ù. case ´ÙÀ½ÀÇ ¹®ÀåµéÀº ¿©·¯ °³ÀÇ ¹®ÀåÀ» ³ª¿­ÇÒ ¼ö ÀÖÁö¸¸ ºí·°Àº ¾Æ´Õ´Ï´Ù. ±×·±µ¥ À̹®ÀåµéÀº break¹®À» ¸¸³ª±â Àü±îÁö´Â ºüÁ®³ª°¡Áö ¾Ê°í ±× ¾Æ·¡ ¹®ÀåÀ» °è¼Ó ¼öÇàÇÏ°Ô µË´Ï´Ù. ±×·³ Á» ±×·²µíÇÑ ¿¹Á¦¸¦ ¸¸µé¾î º¸ÁÒ.. À½. µÎ°³ÀÇ ¼ýÀÚ¿Í ¿¬»ê±âÈ£¸¦ ¹Þ¾Æµé¿© °è»ê±â¸¦ ¸¸µé¾î º¸ÁÒ.. ¿¹¸¦ µé¾î 5 + 3 Çϸé 8 ÇÏ°í °á°ú°¡ ³ªÅ¸³ª°Ô ¸»ÀÔ´Ï´Ù. #include main() { int a, b; char operator; scanf("%d %c %d", &a, &operator, &b); switch(operator) { case '+' : printf("\n %d + %d = %d", a, b, a+b): break; case '-' : printf("\n %d - %d = %d", a, b, a-b): break; case '*' : printf("\n %d * %d = %d", a, b, a*b): break; case '/' : printf("\n %d - %d = %d", a, b, (float)a/b): break; default : printf("\n operator is not valid.."); } } ÇÁ·Î±×·¥À» °£´ÜÈ÷ ¼³¸íÇϸé scanf()¿¡¼­ µÎ°³ÀÇ ¼ýÀÚµ¥ÀÌÅÍ¿Í ¿¬»êÀÚ¸¦ ÀԷ¹޾Ƽ­ switch..case¹®¿¡¼­ ±× ¿¬»êÀÚ¿¡ ¸Â´Â case¸¦ ã¾Æ°©´Ï´Ù. ±×·± ´ÙÀ½ ¿¬»êÀÚ¿¡ ¸Â°Ô °¢ Ãâ·ÂÀ» ÇÏÁÒ.. À½.. ´ÙÀ½Àº ÁßøµÈ Á¦¾î±¸¹® ¿¹¸¦ º¸ÀÌ°í ÀÖ½À´Ï´Ù. Á¦°¡ ¸¸µç°Ô ¾Æ´Ï°í ´Ù¸¥ Ã¥¿¡¼­ ¹è²¸ ¿Â °Ì´Ï´Ù. Âü°í ¸¹ÀÌ Çϼ¼¿ä.. ¿¹Á¦. ±¸±¸´ÜÀ» Ãâ·Â½ÃÅ°´Â ÇÁ·Î±×·¥ #include #include main() { int i,j; for(i=2;i<=9;i++) { printf(" === %d ´Ü ===\n",i); for(j=1;j<=9;j++) printf("%3d * %3d = %3d\n",i,j,(i*j)); puts("¾Æ¹«Å°³ª ´©¸£½Ã¿À.."); getch(); } } ¿¹Á¦. ¾î¶² ¼ö±îÁö ±× À̳»¿¡ µé¾î ÀÖ´Â ¸ðµç ¼Ò¼ö¸¦ ã´Â ÇÁ·Î±×·¥ /* ¼Ò¼ö ÃßÃâ ÇÁ·Î±×·¥(C Primer Plus¿¡¼­ ¹ßÃé) */ #include main() { int number, divisor, limit; int count = 0; printf("¹üÀ§¸¦ ÀÔ·ÂÇϼ¼¿ä.(2º¸´Ù Ä¿¾ßÇÔ) :"); scanf("%d",&limit); while (limit < 2) { /* ÀԷ¿À·ù °Ë»ç */ printf("´Ù½Ã ÀÔ·ÂÇ϶ó: "); scanf("%d",&limit); } printf("1¿¡¼­ %d±îÁöÀÇ ¼Ò¼öµéÀº..\n",limit); for (number=2;number<=limit;number++) { for (divisor=2;number%divisor != 0;divisor++) if (divisor == number) { printf("%5d ",number); count++; if (count % 10 == 0) /*ÇÑÁÙ¿¡ 10°³ÀÇ ¼Ò¼öÃâ·Â*/ printf("\n"); } } getch(); } Á¦°¡ ºÐ¼®ÇØ µå¸±¼öµµ ÀÖÁö¸¸ ±×·¡µµ Á÷Á¢ Â¥º¸½Å´ÙÀ½ ºÐ¼®ÇØ º¸½Ã´Â °Ô ½Ç·Â Çâ»ó¿¡ µµ¿òÀÌ µÉ °Ì´Ï´Ù. ¸¶Áö¸·À¸·Î break³ª goto ¹®Àº ÇÁ·Î±×·¥ÀÇ ±¸Á¶ÀûÀÎ ¸éÀ» ¹Ý°¨½ÃÅ°¹Ç·Î µÇµµ·ÏÀÌ¸é ¾²Áö ¾Êµµ·Ï ÇϽô °Ô ÁÁ½À´Ï´Ù. ³¡.. Á¦¾î¹®À» ³¡³»°Ô µÇ¼­ Á¤¸» ±âºÐÀÌ ÁÁ±º¿ä.. ¾îÁ¨ ºñ°¡ ¿Ô´Âµ¥. Ȥ °¨±â µå½Å ºÐµéÀº ¾ø´ÂÁö.. ±×·³ ´ÙÀ½¹ø¿£ ¿¬»êÀÚ¿Í ¿¬»ê¿ì¼±¼øÀ§¿¡ ´ëÇؼ­ °øºÎÇØ º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.. ¿¬»êÀÚ ¹× ¿ì¼±¼øÀ§ ±×·³ À̹ø¿¡´Â C¿¡¼­ »ç¿ëµÇ´Â ¿¬»êÀÚ¿Í ±×µé »çÀÌÀÇ °ü°è¸¦ ¾Ë¾Æº¸°Ú½À´Ï´Ù. ¿¬»êÀÚ¶õ ÀÚ·áÁ¶ÀÛÀ» ÇÏ´Â ¾î¶² ºÎÈ£¸¦ ¸»Çϴµ¥, ±× ´ë»óÀ» ¿ÀÆÛ·£µå¶ó±¸ ÇÏÁÒ. »ç¿ëµÇ´Â Á¾·ù´Â ¾Æ·¡ÀÇ Ç¥¿Í °°½À´Ï´Ù. ¾Æ·¡ Ç¥´Â ¾î¶² Ã¥(ÀÓÀΰǴÔÀÇ Åͺ¸C Á¤º¹)¿¡¼­ ³»¿ëÀ» °¡Á®¿Ô½À´Ï´Ù. ¹°·Ð ´Ù¸¥Ã¥¿¡µµ ÀÖ´Â ³»¿ëÀ̱¸¿ä. ³Ê¹« ¹æ´ë ÇÏ°í ¾çÀÌ ¸¹¾Æ¼­ ±â³É °¡Á®¿Ô½À´Ï´Ù. ¾çÇعٶø´Ï´Ù. ¾Æ·¡Ç¥¸¦ ¸ðµÎ ¿Ü¿ì¶ó´Â °ÍÀº ¾Æ´Ï´Ï±ñ °ÆÁ¤ÇÏÁö ¸¶½Ã°í, ±×³É ÇÁ·Î±×·¥À» »ç¿ë ÇÏ°í ÀÛ¼ºÇϸ鼭 ¼­¼­È÷ ÀÍÇô³ª°¡¸é µË´Ï´Ù. Ȥ Áß°£¿¡ ¾Ö¸ÅÇÏ´Ù ½ÍÀ¸¸é ´Ù½Ã ÀÌ Ç¥¸¦ ÂüÁ¶ÇÏ½Ã¸é µË´Ï´Ù. C ¾ð¾îÀÇ ¿¬»êÀÚ´Â °áÇÕ¹æ½Ä°ú ±× ¿ì¼±¼øÀ§¿¡ µû¶ó ¿¬»êÀ» ÇàÇÏ°Ô µÇ´Â µ¥ Áß¿äÇÑ °ÍÀº ÇÁ·Î±×·¥¿¡¼­ ±× °áÇÕ ¹æ½Ä°ú ¿ì¼± ¼øÀ§¸¦ »ç¿ëÇÏ´Â »ç¶÷ÀÌ ÃÖ´ëÇÑ ½±°Ô ¼­¼úÇÏ¿©¾ß ¹®Á¦Á¡ÀÌ Àû¾îÁø ´Ù´Â Á¡ÀÔ´Ï´Ù. ¾Æ¹«¸® ÁÁÀº ÄÚµå¶óµµ (¾î·Æ°Ô ¼­¼úÇÏ¿© ÀÌÇØ°¡ ¾î·ÆÁö¸¸ ªÀº ÄÚµå) ³²µéÀÌ ÀÌÇØ°¡ ¾î·Æ´Ù¸é ±× ÄÚµå´Â ÁÁÀº ÄÚµå¶ó°í Çϱ⠾î·ÆÁÒ. µÉ¼ö ÀÖÀ¸¸é ½±°í º¸±â ÁÁ°Ô ¸¸µå´Â°Ô ÁÁÀº ÄÚµù¹æ½ÄÀ̶ø´Ï´Ù. <Ç¥1> °¢ ¿¬»êÀÚµéÀÇ Á¾·ù¿Í ¿ì¼± ¼øÀ§ +-----------+-------+-----------------------------------+----+ | ´ë ºÐ ·ù |¼ÒºÐ·ù | ¿¬ »ê ÀÚ |°áÇÕ| | | | |±ÔÄ¢| +===========+=======+===================================+====+³ô´Ù | ÀÏ Â÷ ½Ä |primery| ( ) [ ] -> . | -> | +-----------+-------+-----------------------------------+----+ |´ÜÇ× ¿¬»êÀÚ| ´Ü Ç× | ! ~ ++ -- - cast¿¬»êÀÚ * & sizeof | <- | +-----------+-------+-----------------------------------+----+ | | ½Â Á¦ | * / % | -> | | |-------+-----------------------------------+----+ | | °¡ °¨ | + - | -> | ¿ì | |-------+-----------------------------------+----+ | |½¬ÇÁÆ® | << >> | -> | | |-------+-----------------------------------+----+ | | ºñ ±³ | < <= > >= | -> | ¼± | |-------+-----------------------------------+----+ |ÀÌÇ× ¿¬»êÀÚ| µî °¡ | == != | -> | | |-------+-----------------------------------+----+ | |ºñÆ®AND| & | -> | | |-------+-----------------------------------+----+ | |ºñÆ®XOR| ^ | -> | ¼ø | |-------+-----------------------------------+----+ | |ºñÆ® OR| | | -> | | |-------+-----------------------------------+----+ | |³í¸®AND| && | -> | À§ | |-------+-----------------------------------+----+ | |³í¸® OR| || | -> | +-----------+-------+-----------------------------------+----+ |»ïÇ× ¿¬»êÀÚ| Á¶ °Ç | ? : | <- | +-----------+-------+-----------------------------------+----+ | Ä¡ ȯ | | = += -= *= /= %= | | | | Ä¡ ȯ |-----------------------------------| <- | | ¿¬ »ê ÀÚ | | >>= <<= &= ^= != | | +-----------+-------+-----------------------------------+----+ |¼øÂ÷ ¿¬»êÀÚ| ¼ø Â÷ | , | -> |³·´Ù +-----------+-------+-----------------------------------+----+ ±âº»ÀûÀ¸·Î »ê¼ú¿¬»êÀÚ´Â ÀÏ¹Ý °è»ê°ú µ¿ÀÏÇÏ°Ô »ç¿ëµË´Ï´Ù. Áõ°¨¿¬»êÀÚ¶ó ºÒ¸®´Â ++, -- ¿¬»êÀÚ´Â »ç¿ë¹ýÀ» ÀÌ¹Ì ¸»Çѹ٠ÀÖÁö¸¸ ´Ù½Ã Çѹø ±× Àǹ̸¦ µÇ»õ°Ü º¸µµ·Ï ÇÏÁÒ.. ++ : º¯¼öÀÇ °ªÀ» Çϳª Áõ°¡½ÃŲ´Ù. -- : º¯¼öÀÇ °ªÀ» Çϳª °¨¼Ò½ÃŲ´Ù. ±â¾ïÇϽðڳª¿ä? À½. ±â¾ïÀÌ ¾È³ª½Å´Ù±¸¿ä.. ¼³¸¶~~?? ±×·³ ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸¸é¼­ À§ µÎ ¿¬»êÀÚÀÇ ¹¦¹Ì¸¦ Çѹø µ¹¾Æº¸°Ú½À´Ï´Ù. #include main() { int a = 1, b; b = a++; printf("\n a = %d, b = %d", a, b); b = ++a; printf("\n a = %d, b = %d", a, b); b = a++ + ++a; printf("\n a = %d, b = %d", a, b); } »ó´çÈ÷ ¾î·ÆÁÒ.. Ȥ À§ÀÇ °á°ú¸¦ ¸ðµÎ Á¤È®È÷ ¿¹ÃøÇϽŠºÐµéÀº ÀÌ¹Ì ¿¬»êÀÚ¿¡ ´ëÇؼ­ »ó´çÈ÷ °øºÎÇϽŠºÐÀ̶ó »ý°¢ÀÌ µå´Â±º¿ä. ±×·± ºÐµéÀº Àû¾îµµ À̹ø ¿¬»êÀÚ ºÎºÐÀ» °Ç³Ê ¶Ù¾î ³Ñ¾î°¡¼Åµµ µÉ °Å¶óº¾´Ï´Ù. À½.. ^^; ÇÁ·Î±×·¥ÀÇ °á°úÀÔ´Ï´Ù. a = 2, b = 1 a = 3, b = 3 a = 4, b = 3 a = 6, b = 9 ´Ù¸¥ °ÍÀº ¸ô¶óµµ ¸¶Áö¸· ºÎºÐÀº ¸ÂÈ÷½Å ºÐÀÌ ÀÖÀ»±î¿ä? »ó´çÈ÷ ±Ã±ÝÇϳ×.. b = a++; óÀ½¿¡ a¸¦ b¿¡ ´ëÀÔÇÑ ´ÙÀ½ a¸¦ 1¸¸Å­ Áõ°¡½ÃÅ°°í Ãâ·ÂÇϸé a = 2, b = 1 b = ++a; a¸¦ 1¸¸Å­ ¸ÕÀú Áõ°¡½ÃŲ´ÙÀ½ b¿¡ ´ëÀÔÇϸé a = 3, b = 3. b = a++ + ++a; À̹ø ¿¬»êÀ» µ¡¼ÀÀ̹ǷΠǥ¿¡¼­ º¸¸é ¾Ë¼ö ÀÖµíÀÌ ¿¬»ê½ÄÀÇ °áÇÕ¹æÇâÀº ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀÔ´Ï´Ù. °á·ÐºÎÅÍ ¾ê±âÇÏÀÚ¸é ¿ÞÂÊ ¼ö½Ä°á°ú´Â 4, ¿À¸¥ÂÊ ¼ö½Ä °á°ú´Â 5. ±×·¡¼­ bÀÇ °ªÀº 9°¡ µÇÁÒ. ±×¸®°í a´Â µÎ¹øÀÇ Áõ°¡¸¦ ÇÏ°Ô µÇ¹Ç·Î 6ÀÌ µÇ±¸¿ä. ¸ÕÀú bÀÇ °á°ú¿¡´Â ¿ÞÂÊ¿¡¼­ Áõ°¡µÇ±âÀü aÀÇ °ªÀÌ »ç¿ëµÇ°í ¿À¸¥ÂÊ ¼ö½Ä¿¡¼­´Â 1À» Áõ°¡½ÃÅ°°í ³­ÈÄÀÇ a°ªÀÌ »ç¿ëµÇ¹Ç·Î ÇÕÀÌ 9°¡ µÇÁÒ. ÀÌ·± Áõ°¨¿¬»êÀÚ ÇüŸ¦ ¾Õ¿¡¼­ »ç¿ëµÇ¸é ÀüÀ§Çü, µÚ¿¡¼­ »ç¿ëµÇ¸é ÈÄÀ§ÇüÀ̶ó°í ÇÕ´Ï´Ù. ÀüÀ§ÇüÀΰ¡ ÈÄÀ§ÇüÀΰ¡¿¡ µû¶ó ÇÁ·Î±×·¥Àº ¿ÏÁÔÈ÷ °á°ú°¡ ´Þ¶óÁú¼ö ÀÖ½À ´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸ÁÒ.. ÀϺηΠ¸¸µç ¿¹Á¦°¡ ¾Æ´Ï¶ó ½ÇÁ¦ ÇÁ·Î±×·¥À» ÇßÀ»¶§ ¸¹ÀÌ ¹ß»ýÇÏ´Â ¹ö±×ÀÔ´Ï´Ù. /* 1ºÎÅÍ 100±îÁöÀÇ ÇÕÀ» ±¸ÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. */ #include void main() { int a = 0, sum = 0; while ( ++a < 100 ) { sum = sum + a; } printf("\n sum = %d, a = %d", sum, a); sum = 0; a = 0; while ( a++ < 100 ) { sum = sum + a; } printf("\n sum = %d, a = %d", sum, a); } »ó´çÈ÷ Äڵ尡 ±æ¾îÁ® ¹ö·È³×¿ä. µÎ °³ÀÇ ÇÁ·Î±×·¥À¸·Î ÀÛ¼ºÇØ¾ß ÇÏÁö¸¸.. Á» ±ÍÂú¾Æ¼­ ÇϳªÀÇ ÇüÅ·Π¸¸µé¾î ¹ö·È½À´Ï´Ù. ÀÚ ÀÌÁ¦ °á°ú¸¦ ¾ê±âÇصµ·Ï ÇÏÁÒ.. °á°ú´Â Á¦°¡ ¸»ÇÏÁö ¾Ê°Ú½À´Ï´Ù. ¿©·¯ºÐÀÌ Á÷Á¢ ÀÌ Äڵ带 ÀÛ¼ºÇؼ­ ÇÑ ¹ø Çغ¸¼¼¿ä.. Çѹø ÀüÀ§ÇüÀ¸·Î, ´Ù¸¥ ÇѹøÀº ÈÄÀ§ÇüÀ¸·Î Çؼ­ Çغ¸½Ã¸é ±× °á°ú¸¦ ´Ù¸£´Ù´Â °ÍÀ» ½±°Ô ¾Ë¼ö ÀÖÀ» °Ì´Ï´Ù. ¿Ö ±×·±Áö´Â ÀÌ¹Ì ¾Õ¿¡¼­ ¸»ÇÑ °Í°ú °°½À´Ï´Ù. ´ÙÀ½Àº Àúµµ ´Ù¸¥ Ã¥¿¡¼­ º» °ÍÀä.. »ó´çÈ÷ Àë À־ ¿Å°Ü Àû½À´Ï´Ù. #include void main() { int a = 10; printf("a = %d, a = %d\n", ++a, a++); } ÇÁ·Î±×·¥ÀÇ °á°ú´Â a = 12, a = 10 ÀÌ°ÍÀº printf()ÇÔ¼öÀÇ Æ¯¼º¶§¹®ÀÔ´Ï´Ù. ÀÎÀÚ¸¦ ³Ñ°Ü ÁÙ¶§ µÚºÎÅÍ ³Ñ°Ü Áֱ⠶§¹®¿¡ »ý±â´Â Çö»óÀÌÁÒ. ¸ÕÀú a¸¦ »ç¿ëÇÏ°í ´Ù½Ã Áõ°¡, ¾ÕÀÇ ÀÎÀÚ¿¡¼­ ¸ÕÀú Áõ°¡, Ãâ·ÂÇϸé 12, 10ÀÌ Ãâ·ÂµÈ´ä´Ï´Ù. º° Áß¿äÇÏÁö ¾ÊÁö¸¸, ±³ÈÆÀº ¾òÀ»¼ö ÀÖÁÒ. Àû¾îµµ ÇÑ ¹®Àå¿¡¼­´Â Áõ°¨ ¿¬»êÀÚ¸¦ µ¿½Ã¿¡ »ç¿ëÇϸé À߸øµÈ °á°ú¸¦ ¾òÀ»¼ö ÀÖ´Ù´Â °Í. Á¤¸» Áß¿äÇÑ ±³ÈÆÀ̶ø´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¿¡¼­µµ º¼¼ö Àִµ¥ ¿ª½Ã À߸ø »ç¿ëµÇ°í ÀÖ´Â ¹æ½ÄÁß¿¡ ÇϳªÀÔ´Ï´Ù. #include void main() { int a = 3; int result; result = a + 4 * ( a++ + 1); printf("\n result = %d, a = %d", result, a); } °á°ú´Â result = 20, a = 4 ÀÌ°ÍÀº ¿¬»êÀÚ ¿ì¼±¼øÀ§ ¹®Á¦¿Í °ü·ÃÀÖ½À´Ï´Ù. () ºÎºÐÀÌ °¡Àå ¿¬»ê¼øÀ§°¡ ³ô±â ¶§¹®¿¡ ÀϾ´Â Çö»óÀÔ´Ï´Ù. ¾î·µç À߸øµÈ ¿¬»êÇüÅÂÁßÀÇ ÇϳªÀÌÁÒ. Á¦°¡ ¸»ÇÏ°í ½ÍÀº °ÍÀº Áõ°¨¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¶§´Â ¸íÈ®ÇÑ ÇüÅÂÀÇ ¿¬»ê¿¡¼­ ¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °Ì´Ï´Ù. ´ÙÀ½¿¡ ¼³¸íÇÒ ¿¬»êÀڴ ġȯ¿¬»êÀÚÀÔ´Ï´Ù.ÀÌ ¿¬»êÀÚµéÀº °ÅÀÇ ¸ðµç ¿¬»ê ÀÚ°ú °áÇÕÀ» Çؼ­ ¸¸µé¼ö Àֱ⠶§¹®¿¡ ÀÚÁÖ »ç¿ëµÇ´Â ¸î °¡Áö¸¸ ¼Ò°³ÇÏ°Ú ½À´Ï´Ù. +=, -=, *=, /=, %=, &=, |=, ^=, >>=, <<= ±×·³ ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸¸é¼­ ¼³¸íÇϱâ·Î ÇÏ°Ú½À´Ï´Ù. /* ġȯ¿¬»êÀÚ ¿¹Á¦ÀÔ´Ï´Ù. */ #include void main() { int a = 3, b = 4; a += b; /* a = a + b */ b -= a; /* b = b - a */ a *= 2; /* a = a * 2 */ b /= 3; /* b = b / 3 */ a %= b; /* a = a % b */ printf("\n a = %d, b = %d", a, b); } À̻󿡼­ º¸µíÀÌ º° ¾î·Á¿î ¿¬»êÀÚµéÀº ¾Æ´Õ´Ï´Ù. Á¦ ¸ñ: [°­ÁÂ] ftp ¼­¹ö ȯ°æ ¼³Á¤Çϱ ftp ¼³Ä¡Çϱâ´Â »ó´çÈ÷ ½±½À´Ï´Ù. ´ëºÎºÐÀÇ ¸®´ª½º&À¯´Ð½º´Â ±âº»ÀûÀ¸·Î ¼³Ä¡°¡ µÇ¾îÀÖ½À´Ï´Ù. ±×·¸´Ù¸é À̸¦ È¿À²ÀûÀ¸·Î ¿î¿µÇÏ·Á¸é ȯ°æ¼³Á¤À» Á¦´ë·Î ÇØ¾ß ÇÕ´Ï´Ù. ¿ì¼± anonymous Àοø¼ö Á¦ÇÑ.. /etc/ftpaccess ÆÄÀÏ¿¡¼­ ¸¸µé¼ö ÀÖ´Ù. limit anony 20 Any /etc/msgs/msg.toomany À§¿¡¼­ anony ¶ó´Â Ŭ·¡½º¸íÀº µû·Î ¸¸µé¾î¾ß ÇÏÁö¸¸. ±×³É all ·Î ¹Ù²Ù¾îµµ »ó°ü¾ø´Ù. Any ´Â ¾ðÁ¦³ª. 20¸íÀÇ Á¦ÇÑÀ» µÎ°í.. À̸¦ ³Ñ±æ ½Ã¿¡´Â /etc/msgs/msg.toomany ÆÄÀÏÀ» º¸¿©ÁØ´Ù. ù ·Î±ä½Ã ³ª¿À´Â ¸Þ¼¼Áö´Â ¾îµð¿¡? /home/ftp/welcome.msg ¶ó´Â ÆÄÀÏÀ» º¸¿©ÁØ´Ù. µð·ºÅ丮¸¦ À̵¿½Ã ³ª¿À´Â ¸Þ¼¼Áö.. °¢ µð·ºÅ丮ÀÇ .message ÆÄÀÏÀ» º¸¿©ÁØ´Ù. passwd-check rfc822 enforce ¶ó°í /etc/ftpaccess ÆÄÀÏ¿¡ Áý¾î ³ÖÀ¸¸é µË´Ï´Ù. ¿©±â±îÁö.. Á¦ ¸ñ: [°­ÁÂ] ·¹µåÇÞ ¸®´ª½º ppp Á¢¼ÓÇϱ⠸®´ª½º »ó¿¡¼­ ppp Á¢¼ÓÀ» ÇϽøé ÀÏ¹Ý À¯´Ð½º °èÁ¤ ó·³. ¿¢½º À©µµ¿ì³ª ±âŸ µîµî¿¡¼­ telnet ÁÖ¼Ò ÀÌ·± Çü½ÄÀ¸·Î ÀÎÅͳÝÀ» ¿©ÇàÇÒ¼ö ÀÖ½À´Ï´Ù. ±× ÀÏ·ÃÀÇ °úÁ¤À» ¾ÆÁÖ Àß ¼³¸íÇϽŠ±ÛÀÌ ÀÖ½À´Ï´Ù. ±Û¿¡ ¾Æ¹«·± °æ°í ¼º ±ÛÀÌ ¾ø´Â °ÍÀ¸·Î º¸¾Æ ÀÚÀ¯·Ó°Ô ¹èÆ÷Çصµ µÇ´Â µí ÇÕ´Ï´Ù. Á¦ ¸ñ:[Âü°í] ·¹µåÇÞ ¼¼¿¬,¸ðµ©À¸·Î PPP Á¢¼Ó ·¹µåÇÞÀ» ¾²½Å´Ù¸é X-windows »ó¿¡¼­ Network Configuration À» »ç¿ëÇϼż­ ÆíÇÏ°Ô È¯°æ ¼³Á¤À» ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ±×·¸Áö ¾Ê´Ù¸é Á÷Á¢ µð·ºÅ͸®¸¦ À̵¿Çؼ­ ÇØ´çÆÄÀÏ À» ÆíÁýÇØÁÖ¸é µË´Ï´Ù. (ÀÌ °æ¿ì´Â ¹ØÀÇ Âü°í¸¦ È®ÀÎÇϼ¼¿ä. Á¦°¡ ³ª¸§´ë·Î È®ÀÎÇØ ºÃÁö¸¸ Ȥ½Ã¶óµµ ´õ ÆíÁýÇؾßÇÒ ÆÄÀÏÀÌ ÇÊ¿äÇÑÁöµµ ¸ð¸£°Ú½À´Ï´Ù. ±×·¯´Ï À¢¸¸Çϸé Network Configuration À» ÀÌ¿ëÇؼ­ ÇÏ´Â°Ô ÁÁ°ÚÁÒ.) ¸Å¿ì Áß¿äÇÑ »ç½Ç Çϳª. ¾ËÂ¥ ·¹µåÇÞÀÇ °æ¿ì PPP ¸¦ ÀÌ¿ëÇÏ·Á¸é ¹Ýµå½Ã °íÃľ߸¸ ÇÏ´Â ÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀÏÀ» ¼öÁ¤ÇÏÁö ¾ÊÀ» °æ¿ì PPP ¸¦ ÀÌ¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. #cd /etc/ppp/ Çϼż­ options ÆÄÀÏÀÇ lock ¾Õ¿¡ #À» ºÙ¿©ÁÖ¼¼¿ä. #lock ·Î ¸»ÀÌÁÒ. ========================================================================== === ¾ËÂ¥ ·¹µåÇÞ X-windows ÀÇ Á¦¾îÆÇ¿¡¼­ Network Configuration ¨ç Names Hostname : »ç¿ëÇÏ°í ½ÍÀº È£½ºÆ® À̸§. ¾Æ¹«°Å³ª Domain : hitel.kol.co.kr Nameservers : 204.252.145.2 ¨è Hosts ±âº»ÀûÀ¸·Î 127.0.0.1 ÀÇ localhost °¡ ÀÖÀ»°Ì´Ï´Ù. Add ¹öÆ°À» ´©¸¥ ÈÄ IP : 204.252.145.2 Name : hitel.kol.co.kr ¨é interfaces ¿©±â¿¡µµ ±âº»ÀûÀ¸·Î 127.0.0.1 ÀÇ localhost °¡ Àֳ׿ä. ¿ª½Ã Add ¹öÆ° ´©¸¥ ÈÄ PPP ¼±ÅÃ. ±×·¯¸é Phone Number, login, password ¸¦ ¹°¾îº¸´Âµ¥ ¾îÂ¥ÇÇ ¼¼¿¬À» ÀÌ¿ëÇؼ­ ÇÒ °ÍÀ̹ǷΠ¾È Àû¾îµµ µË´Ï´Ù. ÀÚ,ÀÌÁ¦ »õ·Î »ý±ä ppp0 Ç׸ñ¿¡ Ä¿¼­¸¦ ´ë°í Edit ¸¦ ´©¸¨´Ï´Ù. ¡¤ Hardware : ¸ðµ© ¼Óµµ ¾Ë¾Æ¼­ Àû°í, ¸ðµ© Æ÷Æ®´Â /dev/modem ¡¤ Communication : ±×³É ³Ñ¾î °©´Ï´Ù. ¡¤ Networking - Active interface at boot time : ºÎÆà ¶§ ¸¶´Ù Á¢¼ÓÇÏ°Ú´Ù´Â ¾ê±âÀε¥ ¼¼¿¬À» ÀÌ¿ëÇØ ÇÊ¿ä½Ã¸¸ ¾µ °ÍÀ̹ǷΠüũ ¾ÈÇϼŵµ µË´Ï´Ù. - Set default route when making connection(defaultroute) : üũÇÕ´Ï´Ù. - Restart PPP when connection fails : Á¢¼ÓÀÌ ½ÇÆÐÇßÀ» ¶§ ÀçÁ¢¼ÓÀ» ÇÕ´Ï´Ù. MRU : ±»ÀÌ ¾È Àû¾îµµ µÇ°ÚÁö¸¸ 1500 Á¤µµ Local IP address : ¾È Àû¾îµµ µË´Ï´Ù. Remote IP address : 204.252.145.2 ¨ê Routing ¾Æ¹« ¼³Á¤À» ¾È Çصµ »ó°ü ¾ø½À´Ï´Ù. ========================================================================== ==== ÀÌ·¸°Ô¸¸ ÇØÁÖ¸é ÀÏ´Ü ±âº» ¼³Á¤Àº ³¡³³´Ï´Ù. ¾Æ¸¶µµ ÀÌ È¯°æÀÌ À¯È¿ÇÏ·Á¸é ÀçºÎÆà ÇØ¾ß ÇÒ°Ì´Ï´Ù. ÀÚ ÀÌÁ¦ ÀçºÎÆÃÇÑ ÈÄ ¼¼¿¬À¸·Î ÇÏÀÌÅÚ Á¢¼ÓÀ» ÇÏ°í go internet ---> 34.°¡»ó PPP ·Î µé¾î°¡½Å ÈÄ Slirp Ready... ¹¹ ÀÌ·± ºñ½ÁÇÑ ±Û±Í°¡ ³ª¿Ã¶§, ÇÑÅÒ µî À» ¿­°Å³ª ¼¼¿¬ÀÇ suspend ±â´ÉÀ» ÀÌ¿ëÇØ ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù. Âü°í·Î ¾Æ ·¡ ¸í·ÉÀº ±âº»ÀûÀ¸·Î root »ç¿ëÀÚ¸¸ °¡´ÉÇÕ´Ï´Ù. #pppd /dev/modem defaultroute ¿©±â±îÁö ¼º°øÇß´Ù¸é O.K.ÀÔ´Ï´Ù. ÀÌÁ¦ ¿©·¯ºÐÀÌ »ç¿ëÇÏ°íÀÚ ÇÏ´Â ÇÁ·Î±×·¥µéÀ» ½ÇÇà ÇÏ¸é µË´Ï´Ù. °¡Àå ¸¹ÀÌ ¾²½Ã´Â www ÀÇ °æ¿ì ³Ý½ºÄÉÀÌÇÁ, ¾Æ·¹³ª, ·¹µåº» ȤÀº lynx ¸¦ ÀÌ¿ëÇÏ½Ã¸é µÇ°ÚÁÒ. ƯÈ÷ lynx ´Â ±×¸²ÀÌ ¾È ¶ß¹Ç·Î »ó´çÈ÷ ºü¸£°Ô ¾µ ¼ö ÀÖÀ» °Ì ´Ï´Ù. [Âü°í] ¨ç #/etc/resolv.conf search hitel.kol.co.kr nameserver 204.252.145.2 ¨è #/etc/hosts 127.0.0.1 localhost 204.252.145.2 hitel.kol.co.kr ¨é #/etc/sysconfig/network-scripts/ifcfg-ppp0 PHONENUM= PERSIST=yes DEFROUTE=yes ONBOOT=no DIALCMD=ATDT INITSTRING=ATZ MODEMPORT=/dev/modem LINESPEED=38400 ESCAPECHARS=no DEFABORT=yes HARDFLOWCTL=yes DEVICE=ppp0 REMIP=204.252.145.2 IPADDR= BOOTP=no MRU=1500 PS. À¸ À¢ÀÏÀÌÁö Áß°£¿¡ ÇÑÁÙ¾¿ÀÌ »ý±â³×¿ä. Áú¹®ÀÖÀ¸½Ã¸é syn3@hitel.kol.co.kr ·Î ÇØÁÖ¼¼¿ä. ¿©±â ±îÁö ÀÔ´Ï´Ù. À¯¿ëÇÏ°Ô ¾²¼¼¿ä ÀÌ°ÍÀº ·¹µåÇÞ ¸®´ª½ºÀÇ °­ÁÂÀÔ´Ï´Ù. Á¦ ¸ñ: [°­ÁÂ] ÀÏ¹Ý ¸®´ª½ºÀÇ ppp Á¢¼ÓÇϱâ ÀÌ°ÍÀº ÀÏ¹Ý ¸®´ª½º»ó¿¡¼­ Á¢¼ÓÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¹Ø°ú µ¿ÀÏÇÏ°Ô ³ª¿ì¿¡¼­ ÆÛ¿È.. *************************************************************************** *** PPP¿¡ ´ëÇÏ¿©*********************************************************** *************************************************************************** 1. pppÀÇ °³¿ä PPP´Â Point-to-Point·Î½á packetÀ» ±³È¯Çϱâ À§ÇÑ link¸¦ »ý¼ºÇÏ´Â data linkÃþÀ» ±ÔÁ¤ÇÑ ÇÁ·ÎÅäÄÝÀÌ´Ù. º¹¼öÀÇ ÇÁ·ÎÅäÄÝÀÇ datagramÀ» ¿î¿µÇϱâ À§ÇÑ Ç¥ÁØÀûÀÎ ¹æ¹ýµµ Á¦°øµÇ¾î ÀÖ´Ù. ¿©±â¼­, datagramÀ̶õ IP protocolµîÀÇ networkÃþ¿¡¼­ ´Ù·ç´Â dataÀÇ ´ÜÀ§. ÀÌ°ÍÀÌ capsulÈ­ µÇ¾î data linkÃþ¿¡ ÀüÇØÁø´Ù. Áï, PPP¸¦ ÀÌ¿ëÇÏ¿© ÇÑ È£½ºÆ®°¡ network¿¡ ¿¬°áµÇ¾î Àִ ȣ½ºÆ®¿¡ ¿¬°áÇϸé, ±×¶§ºÎÅÍ´Â ÀÚ½ÅÀÇ ÄÄÇ»Å͸¦ ÀÎÅÍ³Ý È£½ºÆ®ÀÎ °Íó·³(ÀÚ½ÅÀÇ ÄÄÇ»Å͸¦ ÀÎÅͳݿ¡ ¹Ù·Î ¿¬°áµÈ °Íó·³) ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. Point-to-Point ÇüÀÇ Á¢¼ÓÇüŸ¦ ½ÇÇöÇϱâ À§ÇÑ ÇÁ·ÎÅäÄÝ¿¡ SLIP(Serial Line IP)°¡ ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº IP protocol¸¸ ¿î¿ëÇÏ°í, errorµîÀÇ Ã³¸®µµ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù. PPPÀÇ µîÀåÀ¸·Î Áö±Ý±îÁö SLIPÀ¸·Î Á¢¼ÓÇÏ°í ÀÖ´ø Á¶Á÷µµ PPP·Î ÀüȯÇÏ°í ÀÖ´Â Ãß¼¼ÀÌ´Ù. ´ÙÀ½¿¡ PPPÀÇ 3°¡Áö ÁÖ¿ä ±¸¼º¿ä¼Ò°¡ ÀÖ´Ù. 1) º¹¼öÀÇ ÇÁ·ÎÅäÄÝÀÇ data link¸¦ capsulÈ­ ÇÏ´Â ¹æ¹ý. 2) data linkÀÇ Á¢¼ÓÀ» È®¸³, ¼³Á¤, testÇϱâ À§ÇÑ LCP(Link Control Protocol) 3) ¼­·Î´Ù¸¥ networkÃþÀÇ ÇÁ·ÎÅäÄÝÀÇ Àü¼ÛÀ» ½ÇÇö, ¼³Á¤Çϱâ À§ÇÑ NCP(Network Control Protocol) PPP´Â º¹¼öÀÇ networkÃþ ÇÁ·ÎÅäÄÝÀÇ Åë½ÅÀ» ½ÇÇöÇϱâ À§ÇÏ¿© º¹¼öÀÇ ÇÁ·ÎÅäÄÝ ¹æ¹ýÀ¸·Î ½ÇÇöµÇ¾îÁ® ÀÖ½À´Ï´Ù. (1) linkÀÇ È®¸³°ú Àý´Ü PPP°¡ link¸¦ È®¸³ÇÏ°í Åë½ÅÀ» °³½ÃÇÏ¿© Àý´ÜÇÒ ¶§ ±îÁö¸¦ ¼ø¼­´ë·Î ¼³¸íÇÏ°íÀÚ ÇÑ´Ù. 1) Link Dead phase PPP´Â ÀÌ phase·Î ºÎÅÍ ½ÃÀÛÇÏ¿© ´Ù½Ã ÀÌ phase·Î µ¹¾Æ¿Í Á¾·áÇÑ´Ù. ÀÌ phase´Â ¹°¸®ÃþÀÇ Åë½ÅÁغñ°¡ Á¤¸®µÇ¾î ÀÖÁö ¾ÊÀº »óÅÂÀÌ´Ù. ¿ÜºÎ·Î ºÎÅÍ ¹«¾ùÀΰ¡ÀÇ event(carrier°¡ °ËÃâµÇ¾î Áø´Ù°Å³ª, °ü¸®ÀÚ·Î ºÎÅÍ Á¢¼Ó¿ä±¸°¡ Àִٰųª)°¡ ÀϾ°í, ¹°¸®ÃþÀÇ Áغñ°¡ Á¤¸®µÇ¸é, Link Establishment phase·Î õÀÌÇÑ´Ù. ÀÌ ¶§ LCP¿¡ ´ëÇÏ¿© ''UP'' signalÀÌ º¸³»Áø´Ù. 2) Link Establishment phase UP signaleÀ» ¹ÞÀº LCP¸¦ »ç¿ëÇÏ¿© Link¿¡ °üÇÑ Á¤º¸°¡ »óÈ£ ±³È¯µÇ¾î ¸µÅ©È®¸³ÀÇ °úÁ¤ÀÌ ½ÃÀ۵ȴÙ. ÀÌ ¶§, LCP¿¡ ´ëÇÏ¿© Ưº°ÇÑ ¿ä±¸(¸µÅ© Ç°ÁúÀÇ °¨½Ã¿Í ÀÎÁõ ÇÁ·ÎÅäÄÝÀÇ À¯¹«µî)°¡ ¾øÀ¸¸é, Åë½ÅÀÇ È®¸³ÀÛ¾÷¿¡ °üÇؼ­´Â defaultÀÇ Á¶°ÇÀ¸·Î µÈ´Ù. ÁÖÀÇÇÒ Á¡Àº LCP°¡ ÇÏ´Â ÀÛ¾÷Àº ¸ðµÎ ³×Æ®¿öÅ©ÃþÀÇ ÇÁ·ÎÅäÄÝ¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â °ÍÀ¸·Î µÇ¾î ÀÖ´Ù. network protocol¿¡ ÀÇÁ¸ÇÏ´Â ºÎºÐÀº 4ÀÇ Network-Layer Protocol phrase¿¡¼­ NCP¿¡ ÀÇÇØ ÀÛ¾÷ÀÌ ÀÌ·ç¾î Áø´Ù. ³×Æ®¿öÅ©ÃþÀÇ ÇÁ·ÎÅäÄÝ¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â ºÎºÐÀÇ ¸µÅ©°¡ È®¸³µÇ¸é LCP´Â ''OPENED''¶ó°í ÇÏ´Â »óÅ°¡ µÇ°í, PPP´Â Authentication phrase·Î õÀÌÇÑ´Ù. 3) Authentication phrase networkÃþÀÇ ÇÁ·ÎÅäÄÝÀÇ packetÀ» ±³È¯Çϱâ Àü¿¡ ÇÊ¿ä°¡ ÀÖÀ¸¸é ¸µÅ©¿¡ Á¢¼ÓÇÑ peer°£¿¡¼­ ÀÎÁõÀÌ ÀϾ´Ï´Ù. "ÀÎÁõÀ» ÇÒ °ÍÀΰ¡?" ¶Ç´Â "¾î¶² ÀÎÁõÀ» ÇÒ °ÍÀΰ¡?"´Â Link Establishment phrase¿¡¼­ LCP¿¡ ÀÇÇØ ±³È¯µÈ Á¤º¸¿¡ µû¸¥´Ù. Åë»ó ÀÎÁõÀÌ ÀϾ´Â °æ¿ì´Â PAP, ¶Ç´Â CHAPÀÌ »ç¿ëµÇ¾î Áø´Ù. ÀÎÁõÀÌ ÇÊ¿ä¾ø°Å³ª ÀÎÁõÀÌ ¼º°øÇÑ °æ¿ì´Â Network-Layer Protocol phrase·Î õÀÌÇÑ´Ù. 4) Network-Layer Protocol phrase PPP°¡ ¿©±â±îÁöÀÇ phrase¿¡ ¼º°øÇÏ¸é °¢ networkÃþÀÇ ÇÁ·ÎÅäÄÝ(IP, IPX, AppleTalkµî)¿¡ ´ëÀÀÇÑ NCP¿¡ ÀÇÇØ °¢°¢ ±¸º°µÇ´Â network ÀÌ¿ëÀ» À§ÇÑ Á¤º¸¸¦ ±³È¯ÇÑ´Ù. ¿©±â¿¡ ¼º°øÇϸé ÀÌÈÄ ´ëÀÀÇÏ´Â ÇÁ·ÎÅäÄÝÀÇ datagramÀº ÀÚÀ¯·Ó°Ô ¸µÅ©»óÀ» ´Ù´Ò ¼ö ÀÖ´Ù. ´ëÀÀÇÏÁö ¾Ê´Â packetÀÌ ¼ö½ÅµÈ´Ù¸é ±×°ÍÀº Á¦°ÅµÇ¾î Áø´Ù. ÀÌ phraseÁß¿¡´Â LCP, NCP, networkÃþÀÇ ÇÁ·ÎÅäÄݵîÀÇ packetÀÌ Åë°ú°¡´ÉÇÏ´Ù. ¶ÇÇÑ, NCP´Â ¾ðÁ¦¶óµµ ¸µÅ©¸¦ ´Ýµµ·Ï ¿ä±¸ÇÒ ¼ö ÀÖ´Ù. 5) Link Termination phase carrier°¡ ¾ø°Ô µÇ°Å³ª, ÀÎÁõ¿¡ ½ÇÆÐÇϰųª, ¸µÅ©ÀÇ Ç°ÁúÀÌ ÀúÇϵǰųª, idle timeÀÌ ¿À·¡µÇ°Å³ª, ¶Ç´Â °ü¸®ÀÚ·Î ºÎÅÍ ´ÜÀý¿ä±¸°¡ ¿À¸é, PPP´Â ¾ðÁ¦¶óµµ ¸µÅ©¸¦ ´ÜÀýÇÒ ¼ö ÀÖ´Ù. ¸µÅ©ÀÇ ´ÜÀýÀº LCPÀÇ ÀÛ¾÷¿¡ ÇØ´çÇÑ´Ù. ½ÇÁ¦¿¡´Â LCP°¡ ´ÜÀýÇϱâ À§ÇÑ Á¤º¸¸¦ ''Terminate packet''À¸·Î½á »óÈ£±³È¯ÇÑ´Ù. ´ÜÀýÀÌ ÀϾ¸é PPP´Â ³×Æ®¿öÅ©ÃþÀÇ ÇÁ·ÎÅäÄÝ¿¡°Ô ±× º¸°í¸¦ ÇÏ°í, ÀûÀýÇÑ Ã³¸®¸¦ ÇÏ°Ô ÇÑ´Ù. ÇÊ¿äÇϸé, ¹°¸®Ãþ¿¡ ´ëÇؼ­µµ ¸µÅ© ´ÜÀýÀ» À§ÇÑ signalÀ» º¸³»°í, ¹°¸®ÀûÀ¸·Îµµ ´ÜÀýÇÑ´Ù. ÀÌ phrase¿¡¼­´Â LCPÀÌ¿ÜÀÇ packetÀº ¸ðÁ¶¸® Á¦°ÅµÇ¾î Áø´Ù. ¸ðµç ÀÛ¾÷ÀÌ Á¾·áÇϸé Link Dead phrase·Î õÀÌÇÑ´Ù. PPP´Â ÀÌ»ó°ú °°Àº È帧À¸·Î ¸µÅ©¸¦ È®¸³, Åë½Å, ´ÜÀýÀ» ÀÏÀ¸Å²´Ù. ÀÌ·¯ÇÑ ÇÁ·ÎÅäÄݵéÀÌ ÇùÁ¶ÇÏ¿© PPP·Î½áÀÇ ±â´ÉÀ» ½ÇÇöÇÏ°í ÀÖ´Ù. LCP°¡ ¸µÅ©¸¦ È®¸³ÇÏ°í, NCP°¡ ±× ¸µÅ©»ó¿¡¼­ networkÃþÀ¸·Î Á¤ÀǵǾîÁø ÇÁ·ÎÅäÄÝÀÇ packetÀ» Åë½ÅÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤ÇÑ´Ù. [Âü°í] ÀϺ» UNIX MAGAZINE 1995³â 3¿ù p87ºÎÅÍ.. 2.linux¿¡¼­ dial-up Á¢¼ÓÀ» ÅëÇÑ ppp ÀÌ¿ë (1) dial-up Á¢¼Ó°ú uugetty * ¸ðµ©À» ÅëÇÏ¿© pc¿¡ Á¢¼ÓÇÒ ¶§ uugetty´Â ´ÙÀ½ÀÇ È­ÀÏ¿¡¼­ ±âµ¿µÇ°í, Ãʱ⼳ µÇ¾î Áý´Ï´Ù. /etc/inittab ±âµ¿ /etc/gettydefs portÀÇ Ãʱ⼳Á¤ /etc/default/uugetty.ttyS3 modemÀÇ Ãʱ⼳Á¤ * /etc/inittab¿¡´Â °¨½ÃÇÏ´Â device(ttyS3)¿Í label(vc9600)À» Àμö·Î½á ÁöÁ¤ÇÑ´Ù. »ç¿ëÇÏ´Â ´Ü¸»ÀÇ type(vt100 µî)Àº ¿É¼ÇÀÌ´Ù. s1:45:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 vc9600 vt100 RS232C port¿¡ ´ëÀÀÇÏ´Â ½ºÆä¼È È­ÀÏÀº /dev/ttyS*ÀÌ´Ù. ÀÌ°ÍÀº call-in deviceÀÌ°í, call-out device´Â /dev/cua*ÀÌ´Ù. labelÀº /etc/gettydefsÀÇ recordÀÇ ¼±µÎ¿¡ ¾²¿©ÀÖ´Â °ÍÀÌ´Ù. (2) /etc/gettydefsÀÇ ¼³Á¤ * /etc/gettydefs fileÀÇ record´Â \#À¸·Î ±¸º°µÇ¾îÁö°í, 5°³ÀÇ field¸¦ ÁöÁ¤ÇÑ´Ù. Á¦2field´Â portÀÇ Ãʱ⼳Á¤, Á¦3field´Â ÃÖÁ¾¼³Á¤ÀÌ´Ù. ±×¸®°í, Á¦4field´Â ·Î±×ÀÎ ÇÁ·Î¼¼½ºÀÇ ¼³Á¤ÀÌ´Ù. B9600ÀÌ Åë½Å¼Óµµ¸¦ ¼³Á¤ÇÏ´Â ÆĶó¹ÌÅÍÀÌ´Ù. Åë½Å¼Óµµ´Â ¸ðµ©ÀÌ supportÇÏ´Â ÃÖ°í¼Óµµ·Î ¼³Á¤ÇÑ´Ù. CS8Àº data length 8bit, CRTSCTS´Â modem°ú PC »çÀÌ¿¡¼­ RTS/CTS¿¡ ÀÇÇÑ Çϵå¿þ¾î flow¸¦ Á¦¾îÇÑ´Ù. ¸ðµ©ÀÌ ÀÌ flowÁ¦¾î¸¦ supportÇÏ°í ÀÖÀ¸¸é ÁöÁ¤ÇØ µÎ´Â°ÍÀÌ ÁÁ°ÚÁö¿ä. vc9600# B9600 CS8 CRTSCTS # B9600 SANE -ISTRIP CRTSCTS # @S login: #vc9600 (3) uugetty.ttyS* ÀÇ ¼³Á¤ dial-up Á¢¼Ó¿¡¼­´Â uugetty.ttyS*ÀÇ ¼³Á¤ÀÌ ¹Ù¸£°Ô µÇÁö ¾ÊÀ¸¸é, uugetty°¡ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù. ÀÌ È­ÀÏ¿¡¼­´Â INIT, CONNECT, TIMEOUTÀÇ ÁöÁ¤ÀÌ Æ¯È÷ Áß¿äÇÏ´Ù. HANGUP=YES DEBUG=010 INIT="" AT\r OK ATS0=3&D0\r OK ALTLOCK=cua3 ALTLINE=cua3 WAITFOR=RING CONNECT="" ATs0=3\r CONNECT\s\A TIMEOUT=60 LOGIN=/bin/login [HANGUP=YES] {uu}getty start½Ã¿¡ ȸ¼±À» Àý´ÜÇÑ´Ù. [DEBUG=010] debug Á¤º¸¸¦ /var/adm/debug¿¡ Ãâ·ÂÇÑ´Ù. [INIT] {uu}getty start½Ã¿¡ serial port¸¦ ÃʱâÈ­ÇÑ´Ù. ÀÌ°ÍÀº ¸ðµ©ÀÌ ¿¬°áµÇ¾î ÀÖÀ¸¸é ¹Ýµå½Ã ÇؾßÇÑ´Ù. INIT¿¡ ÁöÁ¤ÇÏ´Â ¹®ÀÚ¿­Àº ¿¡´Â ¸ðµ©ÀÌ º¸³»ÁÖ´Â ¹®ÀÚ¿­À» Àº PC°¡ ¸ðµ©¿¡°Ô º¸³»´Â ¹®ÀÚ¿­À» ÁöÁ¤ÇÑ´Ù. [WAITFOR=RING] modemÀÌ º¸³»ÁÖ´Â RINGÀ̶ó°í ÇÏ´Â ¹®ÀÚ¸¦ userÀÇ ¾ï¼¼½º¶ó°í º»´Ù. [CONNECT] ÀüÈ­°¡ ¿¬°áµÈ ÈÄ ¹Ý¼ÛÇÏ´Â result codeÀÇ ÁöÁ¤ÀÌ´Ù. À§ÀÇ ¿¹¿Í°°ÀÌ ÁöÁ¤Çϸé \s ÈÄ¿¡ Åë½Å¼Óµµ¸¦ º¸³»°í, ±×¸®°í ³ª¼­ uugetty´Â ±× ¼Óµµ¸¦ ÀÚµ¿ Á¶Á¤ÇÑ´Ù. ÀÌ Á¢¼Ó½ÃÀÇ ¼ÓµµÁ¶Á¤±â´ÉÀ» À§ÇØ inittab¿¡´Â ¸ðµ©ÀÌ supportÇÏ°í ÀÖ´Â ÃÖ°í¼Óµµ¸¦ ÃʱâÄ¡·Î½á ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. dataÀÇ Àü¼Û¼Óµµ¿¡´Â ¸ðµ©°£ÀÇ È¸¼±¼Óµµ¿Í ´Ü¸»°ú ¸ðµ©°£ÀÇ ´Ü¸» ¼Óµµ°¡ ÀÖ´Ù. ¸ðµ©ÀÌ CONNECT¶ó°í ÇÏ´Â ¹®ÀÚ¿Í ÇÔ²² ¹Ý¼ÛÇÏ´Â °ÍÀº ȸ¼±¼ÓµµÀÌ´Ù. ÀÌ CONNECT¿¡ ÀÇÇØ ´Ü¸»¼Óµµ°¡ ȸ¼±¼Óµµ¿Í °°µµ·Ï setµÇ¾î Áø´Ù. [TIMEOUT] º¸³»´Â ½ÅÈ£¸¦ ¼ö½ÅÇÏÁö ¾ÊÀ¸¸é Á¾·áµÇ´Â ½Ã°£. Áï À§ÀÇ °æ¿ì login prompt°¡ º¸ÀÎ ÈÄ 1ºÐ¾È¿¡ login ÇÏÁö ¾ÊÀ¸¸é Á¾·áµÈ´Ù. [LOGIN] login processÀÇ ÁöÁ¤. ÀÌ°ÍÀº defaultµîÀ¸·Î ÇÊ¿ä¾øÀ» ¶§µµ ÀÖÁö¸¸, ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ·Î±×ÀÎ ÇÁ·Î¼¼½º°¡ ¹ß»ýÇÏÁö ¾Ê´Â °æ¿ìµµ ÀÖ´Ù. (4) server·Î½áÀÇ set up (uu)getty¸¦ ÀÌ¿ëÇÏ¿© dial-up Á¢¼ÓÀ» °¡´ÉÇÏ°Ô Çϴ°ÍÀ» º¸¾ÒÀ» °ÍÀÔ´Ï´Ù. ÀÌ ¶§ ¼ö½ÅÃø¿¡¼­ pppd deamonÀ» ±âµ¿Çϸé, ppp server·Î½á µ¿ÀÛÇÏ°Ô µË´Ï´Ù. pppÀü¿ë ·Î±×ÀÎ ID¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. ±×·¸°Ô Çϸé, ±× ·Î±×ÀθíÀ¸·Î ·Î±×ÀÎÀ» ÇÏ¸é ¹Ù·Î pppd µ¥¸óÀÌ ±âµ¿µÇ´Â °ÍÀÔ´Ï´Ù. /etc/passwd file¿¡¼­ shell·Î½á /usr/sbin/pppd¸¦ ÁöÁ¤Çϱ⸸ ÇÏ¸é µÇ¹Ç·Î setupÀº °£´ÜÇÕ´Ï´Ù. PPP¸¦ »ç¿ëÇÏ´Â »ç¿ëÀÚ Àü¿øÀÌ pppÀü¿ë ·Î±×ÀÎ ID¿Í password¸¦ ¾Ë°í ÀÖÁö ¾ÊÀ¸¸é ¾È µË´Ï´Ù. ´ÙÀ½ÀÇ ³»¿ëÀº serverÃøÀÇ passwd fileÀÇ ³»¿ëÀÔ´Ï´Ù. ppp:mZtjMMWS43oFY:512:14:PPP:/etc/ppp:/usr/sbin/pppd pppd µ¥¸óÀº ¼³Á¤À» /etc/ppp/options file¿¡¼­ ÂüÁ¶ÇÕ´Ï´Ù. ´ÙÀ½Àº ppp server·Î½áÀÇ ÀϹÝÀûÀÎ ¼³Á¤ ¿¹ÀÔ´Ï´Ù. crtscts passive 38400 modem proxyarp 203.253.145.1:203.253.145.3 [crtscts] hardware flow¸¦ Á¦¾î [passive] server(¼ö½Å) ¸ðµå [38400] Åë½Å¼Óµµ. modem°£ÀÇ ¼Óµµ°¡ ¾Æ´Ï¶ó, ´Ü¸»¼ÓµµÀÌ´Ù. [modem] modem mode [proxyarp] ´ë¸® ARP. client machineÀ» server machineÀÌ ¼ÓÇÏ´Â LANÀÇ ÀϺηνá ÀνÄÇÏ°Ô Çϱâ À§ÇÑ °Í. [203.253.145.1:203.253.145.3] server¿Í client IP address. :À¸·Î ±¸º°ÇÑ´Ù. (5) client·Î½áÀÇ setup pppd ±âµ¿ script¸¦ ÀÛ¼ºÇÑ´Ù. #!/bin/sh /usr/sbin/pppd connect '/usr/sbin/chat -f ~/.chat' /dev/cua3 \ 38400 debug crtscts modem defaultroute ÀÌ ±âµ¿ script¿¡¼­´Â chat script¸¦ -f switch·Î ´Ù¸¥ º°µµÀÇ È­ÀÏÀ» ¸¸µé¾î ÂüÁ¶ÇÏ°í ÀÖ´Ù. ¿©±â¿¡¼­´Â chat script¸¦ ÀÚ½ÅÀÇ È¨µð·ºÅ丮¿¡ .chat¶ó´Â À̸§À¸·Î µÎ°í ÀÖ´Ù. ÀÌ È­ÀÏ¿¡´Â password¸¦ ±â¼úÇÏ°Ô µÇ¹Ç·Î, chmod 600 \~/.chat ¶ó°í ½ÇÇàÇÏ¿© ´Ù¸¥ À¯Àú°¡ ÀÐÀ» ¼ö ¾ø°Ô ÇÑ´Ù. [connect ] serial lineÀ» setupÇϱâ À§ÇØ ½ÇÇàÈ­ÀÏÀ̳ª shell command°¡ »ç¿ëµÇ¾î Áø´Ù. ÁÖ·Î chat ¸í·É¾î°¡ »ç¿ëµÇ´Âµ¥, ¿©±â¿¡¼­´Â remote computer·Î ÀüÈ­¸¦ °Å´Âµ¥ »ç¿ëµÇ¾î Áø´Ù. connect´Â ÇÑ word¸¸ Àμö·Î »ç¿ëÇϹǷÎ, ¿©±â¿¡¼­´Â single quotationÀ¸·Î ¹­¿©Áø ºÎºÐÀÌ connectÀÇ Àμö¿¡ ÇØ´çÇÑ´Ù. [/dev/cua3] »ç¿ëÇÏ°íÀÚ ÇÏ´Â device¼³Á¤. ¿©±â¿¡¼­ cua3Àº ¸ðµ©ÀÌ com4¸¦ »ç¿ëÇÏ°í ÀÖÀ½À» ¶æÇÑ´Ù. [38400] ¼Óµµ. Á¢¼ÓÀÌ ¾ÈµÇ´Â °æ¿ì 9600À¸·Î Çѹø Çغ¸¼¼¿ä. [debug] debug³»¿ëÀ» Ãâ·Â. Ãâ·ÂµÇ´Â È­ÀÏÀº /etc/syslog.conf¿¡¼­ ¼³Á¤. [crtscts] serial portÀÇ dataÀÇ flow¸¦ controlÇϱâ À§Çؼ­ hardware flow controlÀ» »ç¿ëÇ϶ó. [modem] modem control lineÀ» »ç¿ëÇ϶ó. pppd´Â ÀüÈ­¸¦ °É±â ÀüÀ̳ª °Ç ÈÄ¿¡ ÀüÈ­¸¦ hang-upÇÒ °ÍÀÌ´Ù. modemÀÇ Ãʱ⼳Á¤.. ¹¹ ÀÌ·±°Ô ¾Æ´Ò±î?? [defaultroute] ppp link°¡ È®¸³µÇ¾úÀ» ¶§, remote server¸¦ gateway·Î default routingÀ» ÇÑ´Ù.