home *** CD-ROM | disk | FTP | other *** search
/ For Beginners & Professional Hackers / cd.iso / docum / c3.doc / lb04.d < prev    next >
Encoding:
Text File  |  1988-05-17  |  97.5 KB  |  2,366 lines

  1.                                   - 174 -
  2.                                          
  3.  
  4.                PERROR
  5.  
  6.             #include <stdlib.h>            ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩
  7.                                            «í∞∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿
  8.             
  9.             void perror(string);
  10.             char *string;                  ß««íΘÑ¡¿Ñ, »«ßΓáó½∩Ѽ«Ñ
  11.                                            »«½∞º«óáΓѽѼ
  12.             
  13.             int errno;                     ßτÑΓτ¿¬ «Φ¿í«¬
  14.             int sys_nerr;                  τ¿ß½« ß¿ßΓѼ¡δσ ß««íΘÑ-
  15.                                            ¡¿⌐
  16.             char sts_errlist[sys_nerr];    ¼áß߿󠠠߫«íΘÑ¡¿⌐   «í
  17.                                            «Φ¿í¬áσ.
  18.             
  19.                Ä»¿ßá¡¿Ñ.
  20.             
  21.                öπ¡¬µ¿∩ perror »ÑτáΓáÑΓ ß««íΘÑ¡¿Ñ «í  «Φ¿í¬Ñ  ó  stderr.  é
  22.          φΓ«¼ ß««íΘÑ¡¿¿ áαúπ¼Ñ¡Γ string »ÑτáΓáÑΓß∩ »Ñαóδ¼, ºáΓѼ »ÑτáΓáÑΓ-
  23.          ß∩ ñó«ÑΓ«τ¿Ñ, ß¿ßΓѼ¡«Ñ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ ñ½∩ »«ß½Ññ¡Ñú« í¿í½¿-
  24.          «ΓÑτ¡«ú« ó맮óá, óδαáí«ΓáóΦÑú« «Φ¿í¬π, ¿ ¡«óá∩ ßΓ᫬á. ì«¼Ñα ñÑ⌐-
  25.          ßΓó¿Γѽ∞¡«⌐ «Φ¿í¬¿ σαá¡¿Γß∩ ó »ÑαѼѡ¡«⌐ errno, ¬«Γ«αá∩ «íΩ∩ó½Ñ¡á
  26.          ¡á  ó¡ÑΦ¡Ñ¼  πα«ó¡Ñ. æ¿ßΓѼ¡«Ñ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ ñ«ßΓπ»¡« τÑαѺ
  27.          »ÑαѼѡ¡πε sys_errlist, ¬«Γ«αá∩ ∩ó½∩ÑΓß∩ ¼áß߿󫼠 ß««íΘÑ¡¿⌐  ñ½∩
  28.          ßτÑΓτ¿¬á «Φ¿í«¬.
  29.                öπ¡¬µ¿∩  perror »ÑτáΓáÑΓ »α¿í½¿º¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ «í «Φ¿í-
  30.          ¬Ñ, ¿ß»«½∞ºπ∩ º¡áτÑ¡¿Ñ errno ¬á¬ ¿¡ñѬߠñ½∩ sys_errlist. ç¡áτÑ¡¿Ñ
  31.          »ÑαѼѡ¡«⌐ sys_nerr «»αÑñѽ∩ÑΓß∩ ¬á¬ ¼á¬ß¿¼á½∞¡«Ñ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó
  32.          ó ¼áßß¿óÑ sys_errlist.
  33.                ùΓ«íδ óδαáí«ΓáΓ∞ »αáó¿½∞¡δ⌐ αѺπ½∞ΓáΓ, Σπ¡¬µ¿∩ perror ñ«½ª-
  34.          ¡á íδΓ∞ óδºóá¡á ßαáºπ ªÑ »«ß½Ñ í¿í½¿«ΓÑτ¡«⌐ »α«µÑñπαδ, ó«ºóαáΘáε-
  35.          ΘÑ⌐ «Φ¿í¬π. ê¡áτÑ  º¡áτÑ¡¿Ñ errno  ¼«ªÑΓ  íδΓ∞  »ÑαѺỿßá¡«  ñ½∩
  36.          »«ß½ÑñπεΘ¿σ ó맮ó«ó.
  37.             
  38.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  39.             
  40.                öπ¡¬µ¿∩ perror ¡Ñ ó«ºóαáΘáÑΓ ¡¿¬á¬«ú« º¡áτÑ¡¿∩.
  41.                æ¼. ΓᬪѠclearerr, ferror, strerror.
  42.             
  43.                çá¼Ñτá¡¿Ñ. é MS DOS ¡Ñ¬«Γ«αδÑ º¡áτÑ¡¿∩ errno, »α¿óÑñÑ¡¡δÑ ó
  44.          <errno.h>,  ¡Ñ  ¿ß»«½∞ºπεΓß∩.  æ¼«Γα¿ΓÑ  »α¿½«ªÑ¡¿Ñ "æ««íΘÑ¡¿Ñ «í
  45.          «Φ¿í¬áσ", úñÑ »α¿óÑñÑ¡ ß»¿ß«¬ º¡áτÑ¡¿⌐ errno, ¿ß»«½∞ºπѼδσ  ó  MS
  46.          DOS,  ¿ ß««ΓóÑΓßΓóπεΘ¿Ñ ß««íΘÑ¡¿∩ «í «Φ¿í¬áσ. ä½∩ º¡áτÑ¡¿∩ errno,
  47.          ¡Ñ ¿ß»«½∞ºπεΘÑú«ß∩ ó MS DOS, Σπ¡¬µ¿∩ perror »ÑτáΓáÑΓ »πßΓπε ßΓα«-
  48.          ¬π.
  49.             
  50.             
  51.                Åα¿¼Ñα.
  52.             
  53.             #include <fcntl.h>
  54.             #include <sys\types.h>
  55.             #include <sys\stat.h>
  56.             #include <io.h>
  57.             #include <stdlib.h>
  58.             
  59.  
  60.                                       - 175 -
  61.          
  62.          
  63.             int fh1, fh2;
  64.                 
  65.             fh1 = open("data1", O_RDONLY);
  66.             if (fh1 == -1)
  67.                perror("open failed on input file");
  68.             
  69.             fh2 = open("data2", O_WRONLY:O_TRUNC:O_CREAT,
  70.                        S_IREAD:S_IWRITE);
  71.             if (fh2 == -1)
  72.                perror("open failed on output file");.
  73.            
  74.                 
  75.                POW
  76.             
  77.             #include <math.h>
  78.             
  79.             double pow(x,y);
  80.             double x;               ó«ºó«ñ¿¼«Ñ τ¿ß½«
  81.             double y;               ßΓѻѡ∞ τ¿ß½á x
  82.             
  83.                Ä»¿ßá¡¿Ñ.
  84.             
  85.                öπ¡¬µ¿∩ pow óδτ¿ß½∩ÑΓ x, ó«ºóÑñÑ¡¡«Ñ ó ßΓѻѡ∞ y.
  86.             
  87.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  88.            
  89.                öπ¡¬µ¿∩ pow ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ x ó ßΓѻѡ¿ y. àß½¿ y αáó¡á
  90.          0, pow ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 1. àß½¿ x αáó¡« 0 ¿  y  «Γα¿µáΓѽ∞¡á∩,
  91.          pow  πßΓá¡áó½¿óáÑΓ errno ó ERANGE ¿ ó«ºóαáΘáÑΓ HUGE. àß½¿ x «Γα¿-
  92.          µáΓѽ∞¡«Ñ, á y ¡Ñ ∩ó½∩ÑΓß∩ µÑ½«⌐, Σπ¡¬µ¿∩ »ÑτáΓáÑΓ  ß««íΘÑ¡¿Ñ  «í
  93.          «Φ¿í¬Ñ DOMAIN ó stderr, πßΓá¡áó½¿óáÑΓ errno ó ERANGE ¿ ó«ºóαáΘáÑΓ
  94.          ½¿í«  »«½«ª¿Γѽ∞¡«Ñ,  ½¿í«  «Γα¿µáΓѽ∞¡«Ñ º¡áτÑ¡¿Ñ HUGE. é ß½πτáÑ
  95.          »ÑαÑ»«½¡Ñ¡¿∩ ¿½¿ »«ΓÑα¿ º¡áτ¿¼«ßΓ¿ ¡¿¬á¬«ú« ß««íΘÑ¡¿∩ ¡Ñ  »ÑτáΓá-
  96.          ÑΓß∩. æ¼.ΓᬪѠexp, log, sqrt.
  97.             
  98.                Åα¿¼Ñα.
  99.             
  100.             #include <math.h>
  101.             double x = 2.0, y = 3.0, z;
  102.             .
  103.             .
  104.             .
  105.             z = pow(x,y);  /* z = 8.0 */
  106.                            
  107.                
  108.                PRINTF
  109.             
  110.             #include <stdio.h>
  111.                                                                   
  112.             int printf (format-string [, argument...]);
  113.             char *format-string;       ßΓ᫬á π»αáó½Ñ¡¿∩ Σ«α¼áΓ«¼.
  114.             
  115.                                                                   
  116.  
  117.  
  118.                                       - 176 -
  119.          
  120.                Ä»¿ßá¡¿Ñ.
  121.          
  122.                öπ¡¬µ¿∩  printf  Σ«α¼áΓ¿απÑΓ  ¿  »ÑτáΓáÑΓ ¡áí«αδ ß¿¼ó«½«ó ¿
  123.          º¡áτÑ¡¿⌐ ó óδσ«ñ¡«⌐ ßΓá¡ñáαΓ¡δ⌐ »«Γ«¬ stdout. æΓ᫬á Σ«α¼áΓá ß«ß-
  124.          Γ«¿Γ ¿º «íδτ¡δσ ß¿¼ó«½«ó, escape-»«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐ ¿,  Ñß½¿  ºá
  125.          ßΓ᫬«⌐ Σ«α¼áΓá ß½ÑñπεΓ áαúπ¼Ñ¡Γδ,    ÑΘÑ ¿ ß»Ñµ¿Σ¿¬áµ¿¿ Σ«α¼áΓá.
  126.          Äíδτ¡δÑ  ß¿¼ó«½δ  ¿ escape-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿ »α«ßΓ« ¬«»¿απεΓß∩ ó
  127.          stdout ó »«α∩ñ¬Ñ ¿σ »«∩ó½Ñ¡¿∩.
  128.                 
  129.                 ìá»α¿¼Ñα, ßΓ᫬á
  130.             
  131.             printf ("Line one\n\t\tLine two\n");
  132.  
  133.          óδαáí«ΓáÑΓ ¡á óδó«ñÑ
  134.             
  135.             Line one
  136.                             Line two.
  137.                ü«½ÑÑ »«ñα«í¡« escape-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿ «»¿ßδóáεΓß∩ ó ú½á-
  138.          óÑ 2.2.4 απ¬«ó«ñßΓóá MSC Compiler Language Reference.
  139.             
  140.                àß½¿ ºá ßΓ᫬«⌐ Σ«α¼áΓá ß½ÑñπεΓ áαúπ¼Ñ¡Γδ arguments, Γ« φΓá
  141.          ßΓ᫬á ΓᬪѠñ«½ª¡á ß«ñÑαªáΓ∞ ß»Ñµ¿Σ¿¬áµ¿¿ Σ«α¼áΓá,  «»αÑñѽ∩εΘ¿Ñ
  142.          Σ«α¼áΓ  óδó«ñá φΓ¿σ áαúπ¼Ñ¡Γ«ó. æ»Ñµ¿Σ¿¬áµ¿∩ Σ«α¼áΓá óßÑúñá ¡áτ¿-
  143.          ¡áÑΓß∩ ß ß¿¼ó«½á º¡á¬á »α«µÑ¡Γá (%). ì¿ªÑ « ¡Ñ¼ «»¿ßδóáÑΓß∩  »«ñ-
  144.          α«í¡ÑÑ.
  145.                æΓα«¬á  Σ«α¼áΓá  τ¿ΓáÑΓß∩  ß½Ñóá ¡á»αáó«. è«úñá óßΓαÑτáÑΓß∩
  146.          »Ñαóá∩ ß»Ñµ¿Σ¿¬áµ¿∩ Σ«α¼áΓá (Ñß½¿ «¡á ÑßΓ∞), Γ« º¡áτÑ¡¿Ñ  »Ñαó«ú«
  147.          áαúπ¼Ñ¡Γá »«ß½Ñ ßΓ᫬¿ Σ«α¼áΓá »αÑ«íαẫóδóáÑΓß∩ ¿ óδó«ñ¿Γß∩ ß«ú-
  148.          ½áß¡« ºáñá¡¡«⌐ ß»Ñµ¿Σ¿¬áµ¿¿. éΓ«αá∩ ß»Ñµ¿Σ¿¬áµ¿∩ Σ«α¼áΓá óδºδóáÑΓ
  149.          »αÑ«íαẫóá¡¿Ñ  ¿  óδó«ñ  óΓ«α«ú« áαúπ¼Ñ¡Γá ¿ Γᬠñá½ÑÑ, ñ« ¬«¡µá
  150.          ßΓ᫬¿ Σ«α¼áΓá. àß½¿ áαúπ¼Ñ¡Γ«ó í«½∞ΦÑ, τѼ ß»Ñµ¿Σ¿¬áµ¿⌐ Σ«α¼áΓá,
  151.          Γ« φΓ¿ ñ«»«½¡¿Γѽ∞¡δÑ áαúπ¼Ñ¡Γδ ¿ú¡«α¿απεΓß∩. ÉѺπ½∞ΓáΓ  ∩ó½∩ÑΓß∩
  152.          ¡Ñ«»αÑñѽѡ¡δ¼,  Ñß½¿ áαúπ¼Ñ¡Γ«ó ¡Ññ«ßΓáΓ«τ¡« ñ½∩ óßÑσ ß»Ñµ¿Σ¿¬á-
  153.          µ¿⌐ Σ«α¼áΓá.
  154.                æ»Ñµ¿Σ¿¬áµ¿∩ Σ«α¼áΓá ¿¼ÑÑΓ ß½ÑñπεΘπε Σ«α¼π:
  155.             
  156.             %σ[flags][wigth][.precision][{F:N:h:I}]type.
  157.             
  158.                èáªñ«Ñ »«½Ñ ó ß»Ñµ¿Σ¿¬áµ¿¿ Σ«α¼áΓá ∩ó½∩ÑΓß∩ «Γñѽ∞¡δ¼  ß¿¼-
  159.          ó«½«¼  ¿½¿  τ¿ß½«¼,  óδαáªáεΘ¿¼  «Γñѽ∞¡πε  «»µ¿ε Σ«α¼áΓá. æ¿¼ó«½
  160.          type, »«∩ó½∩εΘ¿⌐ß∩ »«ß½Ñ »«ß½Ññ¡Ñú« ¡Ñ«í∩ºáΓѽ∞¡«ú« »«½∩ Σ«α¼áΓá,
  161.          «»αÑñѽ∩ÑΓ áαúπ¼Ñ¡Γ ¬á¬ ß¿¼ó«½,  ßΓα«¬π  ¿½¿  τ¿ß½«.  (æ¼.  Γáí½.
  162.          R.1.).
  163.                Åα«ßΓÑ⌐Φá∩  ß»Ñµ¿Σ¿¬áµ¿∩  Σ«α¼áΓá  ß«ñÑαª¿Γ  Γ«½∞¬« ß¿¼ó«½
  164.          º¡á¬á  »α«µÑ¡Γá  ¿  ß¿¼ó«½  Γ¿»á  (¡á»α¿¼Ñα, %S).  ìÑ«í∩ºáΓѽ∞¡δÑ
  165.          »«½∩  π»αáó½∩εΓ ñαπú¿¼¿ á߻ѬΓἿ Σ«α¼áΓ¿α«óá¡¿∩, ¬á¬ «»¿ßδóáÑΓß∩
  166.          ¡¿ªÑ.
  167.                                                            
  168.             ÅÄïà                      ÄÅêæÇìêà
  169.             
  170.             flags          é¬½ετÑ¡¿Ñ   óδó«ñá  ¿  »ÑτáΓ¿   º¡á¬«ó,
  171.                            »α«íѽ«ó,       ñÑß∩Γ¿τ¡δσ       Γ«τѬ,
  172.                            ó«ß∞¼Ñα¿τ¡δσ     ¿    ΦÑßΓ¡áñµáΓÑα¿τ¡δσ
  173.                            »αÑΣ¿¬ß«ó. (æ¼. Γáí½. R.2.).
  174.                            
  175.             width          î¿¡¿¼á½∞¡«Ñ τ¿ß½« óδó«ñ¿¼δσ ß¿¼ó«½«ó.
  176.                            
  177.  
  178.                                       - 177 -
  179.          
  180.          
  181.             precision      îá¬ß¿¼á½∞¡«Ñ τ¿ß½« ß¿¼ó«½«ó, »ÑτáΓáѼδσ
  182.                            ¡á  óßѼ  ¿½¿  τáßΓ¿  »«½∩  óδó«ñá; ¿½¿
  183.                            ¼¿¡¿¼á½∞¡«Ñ  τ¿ß½«   µ¿Σα   ñ½∩  »ÑτáΓ¿
  184.                            µÑ½δσ º¡áτÑ¡¿⌐. (æ¼. Γáí½. R.3.).
  185.                            
  186.             F, N           ÅαÑΣ¿¬ßδ, »«ºó«½∩εΘ¿Ñ »«½∞º«óáΓѽε over-
  187.                            ride,  »« π¼«½τá¡¿ε,  áñαÑßᵿε ß«ú½áΦÑ-
  188.                            ¡¿⌐ ¼«ñѽÑ⌐ »á¼∩Γ¿.
  189.                            
  190.             F              êß»«½∞ºπÑΓß∩ ñ½∩ ¼á½«⌐ ¼«ñѽ¿ ñ½∩ »ÑτáΓ¿
  191.                            º¡áτÑ¡¿∩, «íΩ∩ó½Ñ¡¡«ú« far.
  192.                                      
  193.             N              êß»«½∞ºπÑΓß∩   ñ½∩   ßαÑñ¡Ñ⌐, í«½∞Φ«⌐  ¿
  194.                            huge-¼«ñѽÑ⌐  ñ½∩ near-º¡áτÑ¡¿⌐.
  195.                            
  196.                            F  ¿ N ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ Γ«½∞¬« ß
  197.                            Γ¿»á¼¿ ß¿¼ó«½«ó s ¿  p,  »«ß¬«½∞¬π  «¡¿
  198.                            π¼ÑßΓ¡δ     Γ«½∞¬«    ß    áαúπ¼Ñ¡ΓἿ,
  199.                            »αÑñßΓáó½∩εΘ¿¼¿ π¬áºáΓѽ∞.
  200.                            
  201.             h, l           ÅαÑñ»«½áúáѼδ⌐ αẼÑα áαúπ¼Ñ¡Γá:
  202.                            
  203.                            h ¿ß»«½∞ºπÑΓß∩ ó  ¬áτÑßΓóÑ  »αÑΣ¿¬ßá  ß
  204.                            µÑ½δ¼¿   Γ¿»á¼¿  d,  i,  o,  x,  X  ñ½∩
  205.                            «»αÑñѽѡ¿∩,  τΓ«   áαúπ¼Ñ¡Γ   ∩ó½∩ÑΓß∩
  206.                            short int.
  207.                            
  208.                            l  ¿ß»«½∞ºπÑΓß∩  ó  ¬áτÑßΓóÑ »αÑΣ¿¬ßá ß
  209.                            Γ¿»á¼¿ d, i, o, x, X  ñ½∩  «í«º¡áτÑ¡¿∩,
  210.                            τΓ«  áαúπ¼Ñ¡Γ ∩ó½∩ÑΓß∩ long int. æ¿¼ó«½
  211.                            l  ¿ß»«½∞ºπÑΓß∩  ΓᬪѠ ¬á¬  »αÑΣ¿¬ß  ß
  212.                            Γ¿»á¼¿  e,  E, f, g, G ñ½∩ «»αÑñѽѡ¿∩,
  213.                            τΓ«  áαúπ¼Ñ¡Γ  ∩ó½∩ÑΓß∩  ß¬«αÑÑ double,
  214.                            τѼ float.
  215.             
  216.                àß½¿ ºá ß¿¼ó«½«¼ º¡á¬á  »α«µÑ¡Γá  (%)  ß½ÑñπÑΓ  ß¿¼ó«½,  ¡Ñ
  217.          «í«º¡áτáεΘ¿⌐  Γ¿»  Σ«α¼áΓá,  Γ«  φëà ß¿¼ó«½  ¬«»¿απÑΓß∩ ó »«Γ«¬
  218.          stdout. ìá»α¿¼Ñα, ñ½∩ »ÑτáΓ¿ ß¿¼ó«½á º¡á¬á »α«µÑ¡Γá  ¿ß»«½∞ºπÑΓß∩
  219.          ¬«¼í¿¡áµ¿∩ %%.
  220.            
  221.            
  222.                                                       Æáí½¿µá R.1.
  223.                
  224.                           Æ¿»δ ß¿¼ó«½«ó Σπ¡¬µ¿¿ printf
  225.          
  226.                
  227.             æêîéÄï    ÆêÅ ÇÉâôîàìÆÇ          öÄÉîÇÆ é¢éÄäÇ
  228.             
  229.               d         µÑ½δ⌐           µÑ½«τ¿ß½Ñ¡¡δ⌐   ñÑß∩Γ¿τ¡δ⌐
  230.                                         º¡á¬«óδ⌐
  231.             
  232.               i         µÑ½δ⌐           µÑ½«τ¿ß½Ñ¡¡δ⌐   ñÑß∩Γ¿τ¡δ⌐
  233.                                         º¡á¬«óδ⌐
  234.             
  235.               u         µÑ½δ⌐           íѺº¡á¬«óδ⌐  µÑ½«τ¿ß½Ñ¡¡δ⌐
  236.  
  237.                                       - 178 -
  238.          
  239.          
  240.                                         ñÑß∩Γ¿τ¡δ⌐
  241.             
  242.               o         µÑ½δ⌐           íѺº¡á¬«óδ⌐   ó«ß∞¼Ñα¿τ¡δ⌐
  243.                                         µÑ½δ⌐
  244.             
  245.               x         µÑ½δ⌐           íѺº¡á¬«óδ⌐   ΦÑßΓ¡áñµáΓÑ-
  246.                                         α¿τ¡δ⌐ µÑ½δ⌐, ¿ß»«½∞ºπεΘ¿⌐
  247.                                         "abcdef"
  248.             
  249.               X         µÑ½δ⌐           íѺº¡á¬«óδ⌐   ΦÑßΓ¡áñµáΓÑ-
  250.                                         α¿τ¡δ⌐ µÑ½δ⌐, ¿ß»«½∞ºπεΘ¿⌐
  251.                                         "ABCDEF".
  252.             
  253.               f       ß  »½áóáεΘÑ⌐      º¡á¬«ó«Ñ º¡áτÑ¡¿Ñ, ¿¼ÑεΘÑÑ
  254.                       Γ«τ¬«⌐            Σ«α¼π  [-]dddd.dddd,   úñÑ
  255.                                         dddd  -  «ñ¡á   ¿½¿  í«½ÑÑ
  256.                                         ñÑß∩Γ¿τ¡δσ  µ¿Σα.    è«½¿-
  257.                                         τÑßΓó«      µ¿Σα     »ÑαÑñ
  258.                                         ñÑß∩Γ¿τ¡«⌐ Γ«τ¬«⌐  ºáó¿ß¿Γ
  259.                                         «Γ   óѽ¿τ¿¡δ   τ¿ß½á,   á
  260.                                         ¬«½¿τÑßΓó«   µ¿Σα    »«ß½Ñ
  261.                                         ñÑß∩Γ¿τ¡«⌐  Γ«τ¬¿  ºáó¿ß¿Γ
  262.                                         «Γ ΓαÑíπѼ«⌐ Γ«τ¡«ßΓ¿.
  263.             
  264.              e        ß »½áóáεΘÑ⌐       º¡á¬«ó«Ñ º¡áτÑ¡¿Ñ, ¿¼ÑεΘÑÑ
  265.                       Γ«τ¬«⌐            Σ«α¼π [-]d.dddde[sign]ddd,
  266.                                         úñÑ  d - ñÑß∩Γ¿τ¡á∩ µ¿Σαá,
  267.                                         dddd  -  «ñ¡á  ¿½¿   í«½ÑÑ
  268.                                         ñÑß∩Γ¿τ¡δσ∩  µ¿Σα,  ddd  -
  269.                                         α«ó¡«    Γα¿    ñÑß∩Γ¿τ¡δσ
  270.                                         µ¿Σαδ,  ¿ sign - ½¿í« "+",
  271.                                         ½¿í« "-".
  272.             
  273.              E        ß »½áóáεΘÑ⌐       ¿ñÑ¡Γ¿τ¡« Σ«α¼áΓπ "e",  ºá
  274.                       Γ«τ¬«⌐            ¿ß¬½ετÑ¡¿Ñ¼   Γ«ú«,    τΓ«
  275.                                         ó¼ÑßΓ« "e" óó«ñ¿Γß∩ "E".
  276.             
  277.              g        ß »½áóáεΘÑ⌐       º¡á¬«ó«Ñ º¡áτÑ¡¿Ñ, αáß»Ñτá-
  278.                       Γ«τ¬«⌐            ΓδóáѼ«Ñ ó Σ«α¼áΓÑ "f" ¿½¿
  279.                                         "e",  ¿  ∩ó½∩εΘÑÑß∩  í«½ÑÑ
  280.                                         ¬«¼»á¬Γ¡δ¼  ñ½∩  óδíαá¡¡δσ
  281.                                         º¡áτÑ¡¿∩  ¿ Γ«τ¡«ßΓ¿  (¬á¬
  282.                                         »«¬áºá¡« ¡¿ªÑ). ö«α¼áΓ "e"
  283.                                         ¿ß»«½∞ºπÑΓß∩, Γ«½∞¬« ¬«úñá
  284.                                         º¡áτÑ¡¿Ñ φ¬ß»«¡Ñ¡Γδ ¼Ñ¡∞ΦÑ
  285.                                         -4    ¿½¿    í«½∞ΦÑ,   τѼ
  286.                                         precision.  éÑñπΘ¿Ñ   ¡π½¿
  287.                                         «ΓßѬáεΓß∩,  ¿  ñÑß∩Γ¿τ¡á∩
  288.                                         Γ«τ¬á  »«∩ó½∩ÑΓß∩   Γ«úñá,
  289.                                         ¬«úñá  ºá ¡Ñ⌐ ß½ÑñπÑΓ «ñ¡á
  290.                                         ¿½¿ ¡Ñ߬«½∞¬« µ¿Σα.
  291.             
  292.              G       ß »½áóáεΘÑ⌐        ¿ñÑ¡Γ¿τ¡«  Σ«α¼áΓπ "g", ºá
  293.                      Γ«τ¬«⌐             ¿ß¬½ετÑ¡¿Ñ¼    Γ«ú«,   τΓ«
  294.                                         ó¼ÑßΓ«     "e"    óó«ñ¿Γß∩
  295.  
  296.                                       - 179 -
  297.          
  298.          
  299.                                         φ¬ß»«¡Ñ¡Γá "E"  (Ñß½¿  «¡á
  300.                                         ¡Ñ«íσ«ñ¿¼á).
  301.             
  302.              c       ß¿¼ó«½∞¡δ⌐         «Γñѽ∞¡δ⌐ ß¿¼ó«½.
  303.             
  304.              s       ßΓ᫬«óδ⌐          ß¿¼ó«½δ    »ÑτáΓáεΓß∩   ñ«
  305.                                         »Ñαó«ú«  ¡π½Ñó«ú«  ß¿¼ó«½á
  306.                                         '\o'   ¿½¿  ñ«  ñ«ßΓ¿ªÑ¡¿∩
  307.                                         precision.
  308.             
  309.              n       π¬áºáΓѽ∞ ¡á       τ¿ß½«   ß¿¼ó«½«ó   πß»ÑΦ¡«
  310.                      µÑ½δ⌐              ºá»¿ßδóáÑΓß∩   ó     »«Γ«¬
  311.                                         stream;    φΓ«    º¡áτÑ¡¿Ñ
  312.                                         σαá¡¿Γß∩  ó  µÑ½«¼,  áñαÑß
  313.                                         ¬«Γ«α«ú«   óδí¿αáÑΓß∩  ¬á¬
  314.                                         áαúπ¼Ñ¡Γ.
  315.  
  316.              p       far-π¬áºáΓѽ∞      »ÑτáΓ∞ áñαÑßá, π¬áºδóáѼ«-
  317.                                         ú« áαúπ¼Ñ¡Γ«¼,  ó    Σ«α¼Ñ
  318.                                         xxxx:yyyy,    úñÑ     xxxx
  319.                                         ∩ó½∩ÑΓß∩  ßÑú¼Ñ¡Γ«¼,  yyyy
  320.                                         ∩ó½∩ÑΓß∩ αáºóÑΓó½Ñ¡¿Ñ¼,  á
  321.                                         µ¿Σαδ   x   ¿  y  ∩ó½∩εΓß∩
  322.                                         ΦÑßΓ¡áñµáΓÑα¿τ¡δ¼¿ µ¿ΣαἿ
  323.                                         óÑασ¡Ñú«  αÑú¿ßΓαá (upper-
  324.                                         case). %Np »ÑτáΓáÑΓ Γ«½∞¬«
  325.                                         áñαÑß  αáºóÑΓó½Ñ¡¿∩  yyyy.
  326.                                         Å«ß¬«½∞¬π  %p »αÑñ»«½áúáÑΓ
  327.                                         π¬áºáΓѽ∞ ¡á far-º¡áτÑ¡¿Ñ,
  328.                                         áαúπ¼Ñ¡Γδ      p-π¬áºáΓѽ∩
  329.                                         ¼«úπΓ íδΓ∞ ßíα«ΦÑ¡δ ¬  far
  330.                                         ó    ¼á½Ñ¡∞¬¿σ     ¼«ñѽ∩σ
  331.                                         »α«úαá¼¼.
  332.                
  333.                
  334.             
  335.                                                       Æáí½¿µá R.2.
  336.                
  337.                           æ¿¼ó«½δ flags Σπ¡¬µ¿¿ printf
  338.             
  339.             FLAG(*)        çìÇùàìêà                  ÅÄ ôîÄïùÇìê₧
  340.             
  341.               -      æ¼ÑΘÑ¡¿Ñ αѺπ½∞ΓáΓá ó½Ñó«    æ¼ÑΘÑ¡¿Ñ  ó»αáó«
  342.                      ó¡πΓα¿ »«½∩ wigth
  343.             
  344.            
  345.               +      Åα¿ß«Ññ¿¡Ñ¡¿Ñ   º¡á¬á   ¬    ç¡á¬  "-"  »«∩ó-
  346.                      óδó«ñ¿¼«¼π º¡áτÑ¡¿ε, Ñß½¿    ½∩ÑΓß∩    Γ«½∞¬«
  347.                      «¡« ¿¼ÑÑΓ º¡á¬«óδ⌐ Γ¿»       ñ½∩  «Γα¿µáΓѽ∞-
  348.                                                   ¡δσ     º¡á¬«óδσ
  349.                                                   º¡áτÑ¡¿⌐
  350.                                                   
  351.             blank    è óδó«ñ¿¼«¼π º¡áτÑ¡¿ε »α¿-   üѺ »α«íѽá
  352.             (' ')    ß«Ññ¿¡∩ÑΓß∩ ' ', Ñß½¿  óδ-
  353.                      ó«ñ¿¼«Ñ º¡áτÑ¡¿Ñ  ∩ó½∩ÑΓß∩
  354.  
  355.                                       - 180 -
  356.          
  357.          
  358.                      º¡á¬«óδ¼ ¿  »«½«ª¿Γѽ∞¡δ¼;
  359.                      Σ½áú  "+"  override   Σ½áú
  360.                      blank,  Ñß½¿  «íá  ÑßΓ∞, ¿
  361.                      »«½«ª¿Γѽ∞¡«Ñ     º¡á¬«ó«Ñ
  362.                      º¡áτÑ¡¿Ñ óδó«ñ¿Γß∩  ó¼ÑßΓÑ
  363.                      ß« º¡á¬«¼
  364.                      
  365.             #        Åα¿ ¿ß»«½∞º«óá¡¿¿ ß Σ«α¼á-   üѺ »αÑΣ¿¬ßá
  366.                      ΓἿ o, x, X,  Σ½áú # »α¿-
  367.                      ß«Ññ¿¡∩ÑΓ ¬ ½εí«¼π ¡Ñ¡π½Ñ-
  368.                      ó«¼π  óδó«ñ¿¼«¼π º¡áτÑ¡¿ε,
  369.                      ß««ΓóÑΓßΓóÑ¡¡«, 0, 0σ, 0ò
  370.                      
  371.                      è«úñá Σ½áú #  ¿ß»«½∞ºπÑΓß∩   äÑß∩Γ¿τ¡á∩ Γ«τ-
  372.                      ó  Σ«α¼áΓÑ  e,  E,  f,  «¡   ¬á   »«∩ó½∩ÑΓß∩
  373.                      «»αÑñѽ∩ÑΓ   ¡á½¿τ¿Ñ ñÑß∩-   Γ«½∞¬«   Γ«úñá,
  374.                      Γ¿τ¡«⌐  Γ«τ¬¿ ó  óδó«ñ¿¼«¼   ¬«úñá   ºá  ¡Ñ⌐
  375.                      º¡áτÑ¡¿¿                     ¿ñπΓ µ¿Σαδ
  376.                      
  377.                      è«úñá Σ½áú #  ¿ß»«½∞ºπÑΓß∩   äÑß∩Γ¿τ¡á∩ Γ«τ-
  378.                      ó Σ«α¼áΓÑ g, G, «¡ «»αÑñÑ-   ¬á   »«∩ó½∩ÑΓß∩
  379.                      ½∩ÑΓ  ¡á½¿τ¿Ñ   ñÑß∩Γ¿τ¡«⌐   Γ«½∞¬«   Γ«úñá,
  380.                      Γ«τ¬¿ ó óδó«ñ¿¼«¼ º¡áτÑ¡¿¿   ¬«úñá   ºá  ¡Ñ⌐
  381.                      ¿  »αÑ»∩ΓßΓóπÑΓ  «ΓßÑτÑ¡¿ε   ¿ñπΓ µ¿Σαδ
  382.                      óÑñπΘ¿σ ¡π½Ñ⌐                éÑñπΘ¿Ñ    ¡π½¿
  383.                                                   «ΓßѬáεΓß∩
  384.                                                   
  385.                      ö½áú  # ¿ú¡«α¿απÑΓß∩,  »α¿
  386.                      Ñú« ¿ß»«½∞º«óá¡¿¿ ó Σ«α¼á-
  387.                      Γáσ c, d, i, u, s
  388.                      
  389.                Åα¿¼Ñτá¡¿Ñ. é Σ«α¼áΓѠ߻ѵ¿Σ¿¬áµ¿¿ ¼«ªÑΓ ß«ñÑαªáΓ∞ß∩ í«½ÑÑ,
  390.          τѼ «ñ¿¡ flag.
  391.  
  392.                Width  -  ¡Ñ«Γα¿µáΓѽ∞¡«Ñ  ñÑß∩Γ¿τ¡«Ñ µÑ½«Ñ, ¬«¡Γα«½¿απεΘÑÑ
  393.          ¼¿¡¿¼á½∞¡«Ñ τ¿ß½« ¡á»ÑτáΓá¡¡δσ ß¿¼ó«½«ó. àß½¿  τ¿ß½«  ß¿¼ó«½«ó  ó
  394.          º¡áτÑ¡¿¿  óδó«ñá  ¼Ñ¡∞ΦÑ, τѼ ó width, ß½Ñóá ¿ ß»αáóá ñ«íáó½∩εΓß∩
  395.          »α«íѽδ (ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, úñÑ «»αÑñѽѡ Σ½áú "-"), »«¬á ¼¿-
  396.          ¡¿¼á½∞¡á∩ Φ¿α¿¡á ¡Ñ íπñÑΓ ñ«ßΓ¿ú¡πΓá. àß½¿ ¬ width »α¿ß«Ññ¿¡∩ÑΓß∩
  397.          0, Γ« 0 íπñπΓ ñ«íáó½∩Γ∞ß∩ ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ ñ«ßΓ¿ú¡πΓ ¼¿-
  398.          ¡¿¼π¼ width. (¥Γ« ¡Ñ »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ τ¿ßѽ, ß¼ÑΘÑ¡¡δσ ó½Ñó«).
  399.                æ»Ñµ¿Σ¿¬áµ¿∩ width ¡Ñ ΓαÑíπÑΓ «ΓßÑτÑ¡¿∩ º¡áτÑ¡¿∩; Ñß½¿ τ¿ß-
  400.          ½« ß¿¼ó«½«ó óδó«ñ¿¼«ú« º¡áτÑ¡¿∩ í«½∞ΦÑ  τѼ «»αÑñѽѡ«  ó  width,
  401.          ¿½¿  ¡Ñ ºáñá¡« ó ¡Ñ¼, óßÑ º¡áτÑ¡¿∩ ß¿¼ó«½«ó αáß»ÑτáΓδóáεΓß∩ (»«ñ-
  402.          ½ÑªáΓ ß»Ñµ¿Σ¿¬áµ¿¿ precision).
  403.                é ß»Ñµ¿Σ¿¬áµ¿¿ width ¼«ªÑΓ íδΓ∞ ºóѺñ«τ¬á (*), ¬«úñá ó¼ÑßΓ«
  404.          º¡áτÑ¡¿∩ »«ñßΓáó½∩ÑΓß∩ ß««ΓóÑΓßΓóπεΘ¿⌐ Ñ¼π áαúπ¼Ñ¡Γ ¿º ß»¿ß¬á áα-
  405.          úπ¼Ñ¡Γ«ó. Çαúπ¼Ñ¡Γ width ñ«½ªÑ¡ »αÑñΦÑñßΓó«óáΓ∞  ß««ΓóÑΓßΓóπεΘѼπ
  406.          º¡áτÑ¡¿ε.
  407.                æ»Ñµ¿Σ¿¬áµ¿∩  precision ∩ó½∩ÑΓß∩ ¡Ñ«Γα¿µáΓѽ∞¡δ¼ ñÑß∩Γ¿τ¡δ¼
  408.          µÑ½δ¼, ¬«Γ«α«¼π »αÑñΦÑñßΓóπÑΓ Γ«τ¬á (.), «»αÑñѽ∩εΘá∩  ¬«½¿τÑßΓó«
  409.          »ÑτáΓáѼδσ ß¿¼ó«½«ó  ¿½¿ ªÑ τ¿ß½« ñÑß∩Γ¿τ¡δσ ¼ÑßΓ.
  410.                é  «Γ½¿τ¿¿  «Γ  ß»Ñµ¿Σ¿¬áµ¿¿  width, ß»Ñµ¿Σ¿¬áµ¿∩ precision
  411.          ΓαÑíπÑΓ «ΓßÑτÑ¡¿∩ óδó«ñ¿¼«ú« º¡áτÑ¡¿∩ ¿½¿, ó  ß½πτáÑ  º¡áτÑ¡¿∩  ß
  412.          »½áóáεΘÑ⌐  Γ«τ¬«⌐, Ñú« «¬απú½Ñ¡¿∩. é ß½πτáÑ »«ñßΓᡫ󬿠áαúπ¼Ñ¡Γá
  413.  
  414.                                       - 181 -
  415.          
  416.          
  417.          ¿º ß»¿ß¬á áαúπ¼Ñ¡Γ«ó  ó ß»Ñµ¿Σ¿¬áµ¿¿ precision ¼«ªÑΓ  íδΓ∞  ºóѺ-
  418.          ñ«τ¬á  (*).  é ß»¿ß¬Ñ áαúπ¼Ñ¡Γ«ó áαúπ¼Ñ¡Γ precision »αÑñΦÑñßΓóπÑΓ
  419.          Σ«α¼áΓ¿απѼ«¼π º¡áτÑ¡¿ε. ÄíΩ∩ߡѡ¿Ñ º¡áτÑ¡¿⌐ precision, ó ºáó¿ß¿-
  420.          ¼«ßΓ¿ «Γ Γ¿»á type  ¿ ß½πτá∩, ¬«úñá precision  »α«»πΘÑ¡«,  »αÑñß-
  421.          Γáó½Ñ¡« ó Γáí½¿µÑ R.3.
  422.                
  423.                                                       Æáí½¿µá R.3.
  424.                
  425.                èá¬ Γ¿» type ó½¿∩ÑΓ ¡á º¡áτÑ¡¿Ñ precision ó Σπ¡¬µ¿¿ printf
  426.          
  427.                
  428.             ÆêÅ             çìÇùàìêà                ÅÄ ôîÄïùÇìê₧
  429.  
  430.              d     Precision         «»αÑñѽ∩ÑΓ   àß½¿   precision
  431.              i     ¼¿¡¿¼á½∞¡«Ñ τ¿ß½« »ÑτáΓáѼδσ   αáó¡á 0 ¿½¿ »α«-
  432.              u     µ¿Σα.  àß½¿  τ¿ß½«  µ¿Σα   ó   »πΘÑ¡á, ¿½¿ Ñß½¿
  433.              o     áαúπ¼Ñ¡ΓÑ     ¼Ñ¡∞ΦÑ,    τѼ   »«∩ó½∩ÑΓß∩ Γ«τ¬á
  434.              x     αẼÑα   precision,    ß½Ñóá   (.)  íѺ  ¿ñπΘ¿σ
  435.              X     »ÑαÑñ   óδó«ñ¿¼δ¼  º¡áτÑ¡¿Ñ¼   ºá ¡Ñ⌐ µ¿Σα,  Γ«
  436.                    ñ«íáó½∩εΓß∩ ¡π½¿. àß½¿ τ¿ß½«   precision  πßΓá-
  437.                    µ¿Σα  ¡Ñ  »αÑó«ßσ«ñ¿Γ αẼÑα   ¡áó½¿óáÑΓß∩ αáó-
  438.                    precision,    º¡áτÑ¡¿Ñ    ¡Ñ   ¡«⌐ 1
  439.                    «ΓßѬáÑΓß∩
  440.                                                   
  441.              e     Precision  «»αÑñѽ∩ÑΓ  τ¿ß½«   Precision     »«
  442.              E     µ¿Σα,    »ÑτáΓáѼδσ    »«ß½Ñ   π¼«½τá¡¿ε  αáó¡á
  443.              f     ñÑß∩Γ¿τ¡«⌐  Γ«τ¬¿. Å«ß½Ññ¡∩∩   6; Ñß½¿ «¡á αáó-
  444.                    »ÑτáΓáѼá∩ µ¿Σαá «¬απú½∩ÑΓß∩   ¡á  0  ¿½¿ »ÑαÑñ
  445.                                                   ¡Ñ⌐   »«∩ó½∩ÑΓß∩
  446.                                                   Γ«τ¬á   (.)  íѺ
  447.                                                   ß½ÑñπѼδσ ºá ¡Ñ⌐
  448.                                                   µ¿Σα,      Γ«úñá
  449.                                                   ñÑß∩Γ¿τ¡á∩ Γ«τ¬á
  450.                                                   ¡Ñ »ÑτáΓáÑΓß∩
  451.                                                   
  452.              g     Precision         «»αÑñѽ∩ÑΓ   ÅÑτáΓáεΓß∩   óßÑ
  453.              G     ¼á¬ß¿¼á½∞¡«Ñ   τ¿ß½«  ó᪡δσ   ó᪡δÑ   (¼¡«ú«-
  454.                    (¼¡«ú«º¡áτ¡δσ)    »ÑτáΓáѼδσ   º¡áτ¡δÑ) µ¿Σαδ
  455.                    ß¿¼ó«½«ó
  456.                    
  457.              c     ìÑ    »α«¿ßσ«ñ¿Γ    ¡¿¬á¬«ú«   ÅÑτáΓ∞ ß¿¼ó«½á
  458.                    ñÑ⌐ßΓó¿∩
  459.             
  460.              s     Precision «»αÑñѽ∩ÑΓ ¼á¬ß¿-    ÅÑτáΓ∞ ß¿¼ó«½«ó,
  461.                    ¼á½∞¡«Ñ τ¿ß½« »ÑτáΓáѼδσ       »«¬á  ¡Ñ  óßΓαÑ-
  462.                    ß¿¼ó«½«ó                       Γ¿Γß∩    ¡π½Ñó«⌐
  463.                    æ¿¼ó«½δ,  »αÑóδΦáεΘ¿Ñ αẼÑα   ß¿¼ó«½
  464.                    precision, ¡Ñ »ÑτáΓáεΓß∩
  465.             
  466.             
  467.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  468.             
  469.                ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¬«½¿τÑßΓó« ¡á»ÑτáΓá¡¡δσ ß¿¼ó«½«ó.
  470.                æ¼.  ΓᬪѠ fprintf,  scanf,  sprintf,  vfprintf,  vprintf,
  471.          vsprintf.
  472.  
  473.                                       - 182 -
  474.          
  475.          
  476.             
  477.                Åα¿¼Ñα:
  478.             
  479.             main ()
  480.       
  481.          /* Σ«α¼áΓ¿α«óá¡¿Ñ ¿ »ÑτáΓ∞ αẽ¿τ¡δσ ñá¡¡δσ */
  482.             
  483.             {
  484.             char ch = 'h', *string = "computer";
  485.             int count = 234, *ptr, hex = 0x10, oct = 010, dec = 10;
  486.             double fp = 251.7366;
  487.             
  488.             printf("%d  %+d  %06d  %X  %x  %o\n\n",
  489.                   count, count, count, count, count, count);
  490.             
  491.             printf("1234567890123%n45678901234567890\n\n", &count);
  492.             printf("Value of count should be 13; count = %d\n\n",
  493.                    count);
  494.             
  495.             printf("%10c%5c\n\n", ch, ch);
  496.             
  497.             printf("%25s\n%25.4s\n\n", string, string);
  498.             
  499.             printf("%f  %.2f  %e  %E\n\n", fp, fp, fp, fp);
  500.             
  501.             printf("%i  %i  %i\n\n", hex, oct, dec);
  502.             
  503.             ptr = &count;
  504.             printf("%Np  %p  %Fp\n",
  505.                    ptr, (int far *) ptr, (int far *)ptr);
  506.             }
  507.             
  508.             Æ«úñá ¡á óδó«ñÑ »«½πτ¿Γß∩ ß½ÑñπεΘÑÑ:
  509.             
  510.             234  +234  000234   EA  ea  352
  511.             
  512.             123456789012345678901234567890
  513.             
  514.                             
  515.             Value of count should be 13; count = 13;
  516.                 h    h
  517.                       computer
  518.                                comp
  519.             
  520.             251.736600    251.74   2.517366e+002   2.517366E+002
  521.             
  522.             16  8  10
  523.             
  524.             127A  1328:127A   1328:127A.
  525.             
  526.             
  527.             PUTC-PUTCHAR
  528.  
  529.             #include <stdio.h>
  530.                                                                                                        
  531.  
  532.                                       - 183 -
  533.          
  534.          
  535.             int putc (c, stream);   ºá»¿ßδóáÑΓ ß¿¼ó«½ ó »«Γ«¬ stream
  536.             int c;                  ºá»¿ßδóáѼδ⌐ ß¿¼ó«½
  537.             
  538.             FILE *stream;           π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE
  539.             
  540.             int putchar(c);         ºá»¿ßδóáÑΓ ß¿¼ó«½ ó <stdout>
  541.             int c;                  ºá»¿ßδóáѼδ⌐ ß¿¼ó«½
  542.             
  543.             
  544.                Ä»¿ßá¡¿Ñ.
  545.  
  546.                Åα«µÑñπαá putc ºá»¿ßδóáÑΓ «Γñѽ∞¡δ⌐ ß¿¼ó«½  "ß"  ó  ΓѬπΘπε
  547.          »«º¿µ¿ε óδσ«ñ¡«ú« »«Γ«¬á stream. Åα«µÑñπαá putchar ¿ñÑ¡Γ¿τ¡á »α«-
  548.          µÑñπαÑ putc(c, stdout).
  549.             
  550.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  551.             
  552.                ¥Γ¿  «íÑ  »α«µÑñπαδ  ó«ºóαáΘáεΓ ºá»¿ßá¡¡δ⌐ ß¿¼ó«½. é ß½πτáÑ
  553.          «Φ¿í¬¿  ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ EOF. Æá¬  ¬á¬  º¡áτÑ¡¿Ñ  EOF  ¼«ªÑΓ
  554.          íδΓ∞  ó«ß»α¿¡∩Γ«  ¬á¬  µÑ½á∩ óѽ¿τ¿¡á, »«φΓ«¼π ñ½∩ »α«óÑન ¼ÑßΓá
  555.          ó«º¡¿¬¡«óÑ¡¿∩ «Φ¿í¬¿ »α¿¼Ñ¡∩ÑΓß∩ Σπ¡¬µ¿∩ ferror.
  556.                æ¼. ΓᬪѠfputc, fputchar, getc, getchar.
  557.                çá¼Ñτá¡¿Ñ: Åα«µÑñπαδ  putc  ¿  putchar  ¿ñÑ¡Γ¿τ¡δ  fputc  ¿
  558.          fputchar, ¡« «¡¿ ∩ó½∩εΓß∩ ¼á¬α«, á ¡Ñ Σπ¡¬µ¿∩¼¿.
  559.             
  560.                Åα¿¼Ñα:
  561.             
  562.             #include <stdio.h>
  563.                                                                  
  564.             FILE *stream;
  565.             char buffer[81];
  566.             int i, ch;
  567.             .
  568.             .
  569.             .
  570.          /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α »«ºó«½∩ÑΓ ºá»¿ßáΓ∞ íπΣÑα ó »«Γ«¬ */
  571.             
  572.             for  (i = 0;  (i < 81)  &&  ((ch = putc(buffer[i],
  573.                                                stream)) != EOF) ;)
  574.                      ++i;
  575.             
  576.          /* çá¼Ñτá¡¿Ñ: Å«ß¬«½∞¬π  Γѽ«  πΓóÑαªñÑ¡¿∩  »πßΓ«,  «»Ñαᵿ∩
  577.          ºá»¿ß¿ »α«¿ßσ«ñ¿Γ ó óδαáªÑ¡¿¿ »α«óÑન. */
  578.             
  579.             
  580.               PUTCH
  581.             
  582.             #include <conio.h>     ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
  583.                                    Σπ¡¬µ¿¿
  584.             
  585.             void putch(c)
  586.             int c;                 óδó«ñ¿¼δ⌐ ß¿¼ó«½
  587.             
  588.             
  589.  
  590.                                       - 184 -
  591.          
  592.          
  593.                Ä»¿ßá¡¿Ñ.
  594.             
  595.                öπ¡¬µ¿∩ putch ºá»¿ßδóáÑΓ ß¿¼ó«½ "c" »α∩¼« ¡á ¬«¡ß«½∞.
  596.             
  597.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  598.             
  599.                é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  600.                æ¼.ΓᬪѠcprintf, getch, getche.
  601.             
  602.                Åα¿¼Ñα:
  603.             
  604.             #include <conio.h>
  605.                                  
  606.           /* ó ß½ÑñπεΘѼ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ¼«ªÑΓ íδΓ∞ «»αÑñѽѡá Σπ¡¬-
  607.          µ¿∩ getche »«ßαÑñßΓó«¼ ¿ß»«½∞º«óá¡¿∩ Σπ¡¬µ¿⌐ putch ¿ getch.*/
  608.          
  609.             int getche()
  610.             {
  611.                 int ch;
  612.             
  613.                 ch=getch();
  614.                 putch(ch);
  615.                 return(ch);
  616.             }
  617.             
  618.             
  619.                PUTENV
  620.             
  621.             #include <stdlib.h>              ΓαÑíπÑΓß∩ Γ«½∞¬«  ñ½∩
  622.                                              «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿
  623.                                              
  624.             int putenv(envstring);           «íΩ∩ó½Ñ¡¿Ñ   ßΓ᫬¿
  625.             char *envstring;                 «¬απªÑ¡¿∩
  626.                                              
  627.                Ä»¿ßá¡¿Ñ.
  628.             
  629.                öπ¡¬µ¿∩ putenv ñ«íáó½∩ÑΓ ¡«óδÑ »ÑαѼѡ¡δÑ «¬απªÑ¡¿∩ ¿½¿ ¼«-
  630.          ñ¿Σ¿µ¿απÑΓ º¡áτÑ¡¿∩ ßπΘÑßΓóπεΘ¿σ »ÑαѼѡ¡δ󠫬απªÑ¡¿∩.
  631.                ÅÑαѼѡ¡δÑ «¬απªÑ¡¿∩ «»αÑñѽ∩εΓ «¬απªÑ¡¿Ñ, ó ¬«Γ«α«¼ óδ»«½-
  632.          ¡∩ÑΓß∩  »α«µÑßß (¡á»α¿¼Ñα, »«¿ß¬ »« π¼«½τá¡¿ε path ñ½∩ í¿í½¿«ΓѬ,
  633.          ½¿¡¬πѼδσ ó¼ÑßΓÑ ß »α«úαá¼¼«⌐).
  634.                Çαúπ¼Ñ¡Γ envstring ñ«½ªÑ¡ íδΓ∞ π¬áºáΓѽѼ ¡á ßΓ᫬π ó  ß½Ñ-
  635.          ñπεΘÑ⌐ Σ«α¼Ñ:
  636.             
  637.                varname = string,
  638.             
  639.                úñÑ varname - ¿¼∩ ñ«íáó½∩Ѽ«⌐ ¿½¿ ¼«ñ¿Σ¿µ¿απѼ«⌐ »ÑαѼѡ¡«⌐
  640.          «¬απªÑ¡¿∩  ¿  string - º¡áτÑ¡¿Ñ φΓ«⌐ »ÑαѼѡ¡«⌐. àß½¿ varname πªÑ
  641.          ∩ó½∩ÑΓß∩  τáßΓ∞ε  «¬απªÑ¡¿∩,  «¡á  ºá¼Ñ¡∩ÑΓ  ßπΘÑßΓóπεΘπε  ßΓ᫬π
  642.          string, ¿¡áτÑ - ¬ «¬απªÑ¡¿ε ñ«íáó½∩ÑΓß∩ ¡«óá∩ ßΓ᫬á string. ç¡á-
  643.          τÑ¡¿Ñ  »ÑαѼѡ¡«⌐ ¼«ªÑΓ íδΓ∞ πßΓá¡«ó½Ñ¡« »πßΓδ¼, Ñß½¿ string »πß-
  644.          Γá∩.
  645.                ô¬áºáΓѽ∞ ¡á óσ«ñ (ºá»¿ß∞) «¬απªÑ¡¿∩  ¡Ñ  «ßó«í«ªñáÑΓß∩  ñ«
  646.          ΓÑσ »«α, »«¬á óσ«ñ (ºá»¿ß∞) «¬απªÑ¡¿∩ «ßΓáÑΓß∩ ¡Ñ¿º¼Ñ¡¡δ¼ »α¿ ¿ß-
  647.          »«½∞º«óá¡¿¿   ¿½¿ »«¬á »ÑαѼѡ¡á∩ «¬απªÑ¡¿∩ ¡Ñ íπñÑΓ π¬áºδóáΓ∞ ¡á
  648.          «ßó«í«ªñÑ¡¡«Ñ »α«ßΓαá¡ßΓó«. Ç¡á½«ú¿τ¡á∩  »α«í½Ñ¼á  ¼«ªÑΓ  ó«º¡¿¬-
  649.  
  650.                                       - 185 -
  651.          
  652.          
  653.          ¡πΓ∞, Ñß½¿ »ÑαÑñáÑΓß∩ π¬áºáΓѽ∞ ¡á ½«¬á½∞¡πε »ÑαѼѡ¡πε ñ½∩ Σπ¡¬-
  654.          µ¿¿ putenv, á ºáΓѼ   »α«¿ßσ«ñ¿Γ óδσ«ñ ¡á Σπ¡¬µ¿ε, ó ¬«Γ«α«⌐ «íΩ-
  655.          ∩ó½Ñ¡á »ÑαѼѡ¡á∩.
  656.             
  657.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  658.             
  659.                öπ¡¬µ¿∩  putenv  ó«ºóαáΘáÑΓ 0, Ñß½¿ «¡á πß»ÑΦ¡« «Γαáí«Γá½á.
  660.          é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 π¬áºδóáÑΓ ¡á «Φ¿í¬π.
  661.                æ¼. ΓᬪѠgetenv.
  662.             
  663.                çá¼Ñτá¡¿Ñ: öπ¡¬µ¿¿ getenv ¿  putenv  ¿ß»«½∞ºπεΓ  ú½«íá½∞¡πε
  664.          »ÑαѼѡ¡πε  environ  ñ½∩  ñ«ßΓπ»á ¬ Γáí½¿µÑ »ÑαѼѡ¡δ󠫬απªÑ¡¿∩.
  665.          öπ¡¬µ¿∩ putenv ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ º¡áτÑ¡¿Ñ environ, ñѽá∩  ¡ÑñÑ⌐ßΓó¿-
  666.          Γѽ∞¡δ¼ áαúπ¼Ñ¡Γ "envp" ñ½∩ Σπ¡¬µ¿¿ "main".
  667.          
  668.                Åα¿¼Ñα:
  669.       
  670.             #include<stdlib.h>
  671.             #include<stdio.h>
  672.             #include<process.h>
  673.             
  674.                /* »«»δΓ¬á ¿º¼Ñ¡Ñ¡¿∩ »ÑαѼѡ¡«⌐ «¬απªÑ¡¿∩ */
  675.             
  676.             if (putenv("PATH=a:\\bin;b:\\tmp") == -1)
  677.             {   printf("putenv failed -- out of memory");
  678.                 exit(1);
  679.             }
  680.            
  681.            
  682.             
  683.                PUTS
  684.             
  685.             #include <stdio.h>
  686.                                                                  
  687.             int puts (string);
  688.             char *string;                    óδó«ñ¿¼á∩ ßΓ᫬á
  689.             
  690.             
  691.                Ä»¿ßá¡¿Ñ.
  692.  
  693.                ¥Γá  Σπ¡¬µ¿∩ ºá»¿ßδóáÑΓ óδíαá¡¡πε ßΓ᫬π string ó ßΓá¡ñáαΓ-
  694.          ¡δ⌐ »«Γ«¬ óδó«ñá stdout, ºá¼Ñ¡∩∩ ó óδσ«ñ¡«¼ »«Γ«¬Ñ ¡π½Ñó«⌐ ß¿¼ó«½
  695.          «¬«¡τá¡¿∩ ßΓ᫬¿ ('\0') ß¿¼ó«½«¼ ¡«ó«⌐ ßΓ᫬¿ ('\n').
  696.             
  697.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  698.             
  699.                öπ¡¬µ¿∩ puts ó«ºóαáΘáÑΓ »«ß½Ññ¡¿⌐ ºá»¿ßá¡¡δ⌐ ß¿¼ó«½,  ¬«Γ«-
  700.          αδ¼ «íδτ¡« ∩ó½∩ÑΓß∩ ß¿¼ó«½ ¡«ó«⌐ ßΓ᫬¿ '\n'. ç¡áτÑ¡¿Ñ EOF ßó¿ñÑ-
  701.          Γѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ.
  702.                æ¼. ΓᬪѠfputs, gets.
  703.             
  704.                Åα¿¼Ñα:
  705.             
  706.             #include <stdio.h>
  707.             
  708.  
  709.                                       - 186 -
  710.          
  711.          
  712.             int result;
  713.             
  714.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α »«ºó«½∩ÑΓ ºá»¿ßáΓ∞ »«ñ߬Ậπ "éßΓáó∞-
  715.          ΓÑ ñ¿ß¬ÑΓπ ß ñá¡¡δ¼¿ ¿ ¡áª¼¿ΓÑ ½εíπε ¬½áó¿Φπ" ó stdout. */
  716.             
  717.             result = puts("Insert data disk and strike any key");.
  718.            
  719.             
  720.                PUTW
  721.             
  722.             #include <stdio.h>
  723.                                                                   
  724.             int putw(binint, stream);
  725.             int binint;              óδó«ñ¿¼«Ñ ñó«¿τ¡«Ñ µÑ½«Ñ
  726.                                                                   
  727.             FILE *stream;            π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE
  728.                                                                   
  729.                Ä»¿ßá¡¿Ñ.
  730.                                                                   
  731.                öπ¡¬µ¿∩ putw ºá»¿ßδóáÑΓ ñó«¿τ¡«Ñ º¡áτÑ¡¿Ñ Γ¿»á int ó  ΓѬπ-
  732.          Θπε  »«º¿µ¿ε  »«Γ«¬á stream. ¥Γá Σπ¡¬µ¿∩ ¡Ñ óδαáó¡¿óáÑΓ Ññ¿¡¿µδ ó
  733.          »«Γ«¬Ñ ¿ ¡Ñ »αÑñ»«½áúáÑΓ ß»Ñµ¿á½∞¡«ú« óδαáó¡¿óá¡¿∩.
  734.          
  735.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  736.            
  737.                öπ¡¬µ¿∩ putw ó«ºóαáΘáÑΓ ºá»¿ßá¡¡«Ñ º¡áτÑ¡¿Ñ.  ç¡áτÑ¡¿Ñ  EOF
  738.          ßó¿ñÑΓѽ∞ßΓóπÑΓ  «í  «Φ¿í¬Ñ.  Å«ß¬«½∞¬π EOF ¼«ªÑΓ íδΓ∞ ó«ß»α¿¡∩Γ«
  739.          ΓᬪѠ¬á¬ µÑ½á∩ óѽ¿τ¿¡á, Γ« ñ½∩ »α«óÑન «Φ¿í¬¿ ¼«ªÑΓ  íδΓ∞  ¿ß-
  740.          »«½∞º«óá¡á Σπ¡¬µ¿∩ ferror.
  741.                æ¼. ΓᬪѠgetw.
  742.                çá¼Ñτá¡¿Ñ: ¥Γá Σπ¡¬µ¿∩ »«ºó«½∩ÑΓ «íÑß»Ñτ¿óáΓ∞ ß«ó¼ÑßΓ¿¼«ßΓ∞
  743.          ß »αÑñδñπΘ¿¼¿ í¿í½¿«ΓѬἿ. ìπª¡« ºá¼ÑΓ¿Γ∞, τΓ« »α¿ ¿ß»«½∞º«óá¡¿¿
  744.          ñá¡¡«⌐  Σπ¡¬µ¿¿  ¼«úπΓ  ó«º¡¿¬áΓ∞ »α«í½Ñ¼δ »ÑαÑ¡«ß¿¼«ßΓ¿ ¿º «ñ¡«⌐
  745.          ß¿ßΓѼδ ó ñαπúπε ß¿ßΓѼπ, »«ß¬«½∞¬π ó ¡¿σ «Γ½¿τáεΓß∩ αẼÑαδ  int
  746.          ¿ »«α∩ñ«¬ αáß»«½«ªÑ¡¿∩ íá⌐Γ«ó ó int.
  747.             
  748.                Åα¿¼Ñα:
  749.             
  750.             #include <stdio.h>
  751.             #include <stdlib.h>
  752.             
  753.             FILE *stream;
  754.             .
  755.             .
  756.             .
  757.             
  758.                /*  ß½ÑñπεΘ¿Ñ  «»ÑαáΓ«αδ  »«ºó«½∩εΓ  ºá»¿ßáΓ∞ ß½«ó« ó »«Γ«¬
  759.          stream ¿ »α«óÑα¿Γ∞ ¡á ¡á½¿τ¿Ñ «Φ¿í¬¿. */
  760.             
  761.             putw(0345, stream);
  762.             
  763.             if (ferror(stream))
  764.             {     fprintf(stderr, "putw failed\n");
  765.                   clearerr(stream);
  766.             }
  767.  
  768.                                       - 187 -
  769.          
  770.          
  771.            
  772.             
  773.                QSORT
  774.             
  775.             #include <search.h>    ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
  776.                                    Σπ¡¬µ¿¿
  777.             
  778.             void gsort(base,num, width, compare);
  779.             char *base;
  780.             unsigned num, width;
  781.             int (*compare)();
  782.             
  783.                Ä»¿ßá¡¿Ñ.
  784.             
  785.                öπ¡¬µ¿∩ qsort óδ»«½¡∩ÑΓ á½ú«α¿Γ¼ íδßΓα«⌐ ß«αΓ¿α«ó¬¿,  τΓ«íδ
  786.          «Γß«αΓ¿α«óáΓ∞  ¼áß߿󠠿º  num φ½Ñ¼Ñ¡Γ«ó, ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ αẼÑα«¼
  787.          width íá⌐Γ. Çαúπ¼Ñ¡Γ base ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ  ¡á  íáºπ  ¼áßß¿óá,
  788.          ¬«Γ«αδ⌐  ¡πª¡«  «Γß«αΓ¿α«óáΓ∞.  öπ¡¬µ¿∩ qsort »ÑαѺỿßδóáÑΓ φΓ«Γ
  789.          ¼áßß¿ó ß «Γß«αΓ¿α«óá¡¡δ¼¿ φ½Ñ¼Ñ¡ΓἿ.
  790.                Çαúπ¼Ñ¡Γ compare ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á »α«µÑñπαπ,  »«ßΓáó-
  791.          ½∩Ѽπε  »«½∞º«óáΓѽѼ,  ¬«Γ«αá∩ ßαáó¡¿óáÑΓ ñóá φ½Ñ¼Ñ¡Γá ¼áßß¿óá ¿
  792.          ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ, «»αÑñѽ∩εΘÑÑ ¿σ «Γ¡«ΦÑ¡¿Ñ.
  793.                öπ¡¬µ¿∩ qsort ¼«ªÑΓ óδºδóáΓ∞  »α«µÑñπαπ  compare  «ñ¿¡  ¿½¿
  794.          ¡Ñ߬«½∞¬«  αẠó »α«µÑßßÑ ß«αΓ¿α«ó¬¿, »ÑαÑñáóá∩ »α¿ ¬áªñ«¼ ó맮óÑ
  795.          π¬áºáΓѽ¿ ¡á ñóá φ½Ñ¼Ñ¡Γá ¼áßß¿óá.  Åα«µÑñπαá  ñ«½ª¡á  ßαáó¡¿óáΓ∞
  796.          φ½Ñ¼Ñ¡Γδ, á ºáΓѼ ó«ºóαáΘáΓ∞ «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
  797.             
  798.             ç¡áτÑ¡¿Ñ                   àú« ß¼δß½
  799.             
  800.             ¼Ñ¡∞ΦÑ 0           element 1 ¼Ñ¡∞ΦÑ element 2
  801.                 
  802.                0               element 1 αáóÑ¡ element 2
  803.                 
  804.             í«½∞ΦÑ 0           element 1 í«½∞ΦÑ element 2
  805.             
  806.                 
  807.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  808.             
  809.                é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  810.                æ¼.ΓᬪѠbsearch, lsearch.
  811.             
  812.                Åα¿¼Ñα:
  813.            
  814.             #include <search.h>
  815.             #include <string.h>
  816.             #include <stdio.h>
  817.             
  818.             int compare ();
  819.             /* ñ«½ª¡á íδΓ∞ «íΩ∩ó½Ñ¡á ¬á¬ Σπ¡¬µ¿∩ */
  820.             
  821.             main (argc, argv)
  822.                 int argc;
  823.                 char **argv;
  824.                 {
  825.                 .
  826.  
  827.                                       - 188 -
  828.          
  829.          
  830.                 .
  831.                 .
  832.                /*  ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ß«αΓ¿απÑΓ áαúπ¼Ñ¡Γδ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿
  833.          ó ½Ñ¬ß¿¬«úαáΣ¿τÑ߬«¼ »«α∩ñ¬Ñ: */
  834.             
  835.                 qsort((char*)argv,argc,sizeof(char*),compare);
  836.                 for (i=0; i<argc; ++i)
  837.                   printf("%s\n", argv[i]);
  838.                 .
  839.                 .
  840.                 .
  841.                 }
  842.             
  843.             int compare (arg1, arg2)
  844.                char **arg1, **arg2;
  845.             
  846.                {
  847.                return(strcmp(*arg1, *arg2));
  848.                }
  849.             
  850.             
  851.                RAND
  852.             
  853.             #include<stdlib.h>              ΓαÑíπÑΓß∩ Γ«½∞¬«   ñ½∩
  854.                                             «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿
  855.             
  856.             int rand;
  857.             
  858.                Ä»¿ßá¡¿Ñ.
  859.             
  860.                öπ¡¬µ¿∩ rand ó«ºóαáΘáÑΓ »ßÑóñ«ß½πτá⌐¡«Ñ µÑ½«Ñ  ó  ¿¡ΓÑαóá½Ñ
  861.          «Γ 0 ñ« 32767. Åα«µÑñπαá srand ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ »ÑαÑñ ó맮ó«¼
  862.          rand ñ½∩ πßΓᡫ󬿠¡áτá½∞¡«⌐ ß½πτá⌐¡«⌐ Γ«τ¬¿.
  863.             
  864.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  865.             
  866.                öπ¡¬µ¿∩ rand ó«ºóαáΘáÑΓ »ßÑóñ«ß½πτá⌐¡«Ñ τ¿ß½«.
  867.                æ¼. ΓᬪѠsrand.
  868.             
  869.                Åα¿¼Ñα:
  870.             
  871.             #include<stdlib.h>
  872.             #include<stdio.h>
  873.             
  874.             int x;
  875.             
  876.          /* »ÑτáΓáÑΓ 20 »Ñαóδσ ßúÑ¡Ñα¿α«óá¡¡δσ ß½πτá⌐¡δσ τ¿ßѽ */
  877.             
  878.             for (x = 1; x <= 20; x++)
  879.                 printf("iteration %d, rand=%d\n", x, rand());.
  880.             
  881.            
  882.             
  883.  
  884.  
  885.                                       - 189 -
  886.          
  887.                READ
  888.          
  889.             #include<io.h>        ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
  890.                                   Σπ¡¬µ¿¿
  891.             
  892.             int read(handle, buffer,count)
  893.             int handle;           handle-α,  ßßδ½áεΘ¿⌐ß∩ ¡á «Γ¬αδ-
  894.                                   Γδ⌐ Σá⌐½á
  895.             char *buffer;         »á¼∩Γ∞ ñ½∩ σαá¡Ñ¡¿∩ ñá¡¡δσ
  896.             unsigned int count;   ¼á¬ß¿¼á½∞¡«Ñ ¬«½¿τÑßΓó« íá⌐Γ«ó
  897.             
  898.                Ä»¿ßá¡¿Ñ.
  899.             
  900.                öπ¡¬µ¿∩ read »«ºó«½∩ÑΓ τ¿ΓáΓ∞ íá⌐Γδ count ¿º Σá⌐½á, ßó∩ºá¡-
  901.          ¡«ú« ß handle, ó íπΣÑα buffer. Ä»Ñαᵿ¿ τΓÑ¡¿∩ ¡áτ¿¡áεΓß∩ ß ΓѬπ-
  902.          ΘÑ⌐ »«º¿µ¿¿ π¬áºáΓѽ∩ ¡á Σá⌐½, ¬«Γ«αδ⌐ ß««ΓóÑΓßΓóπÑΓ ñá¡¡«¼π Σá⌐-
  903.          ½π.  Å«ß½Ñ óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ τΓÑ¡¿∩ φëàπ¬áºáΓѽ∞ πßΓá¡áó½¿óá-
  904.          ÑΓß∩ ¡á ß½ÑñπεΘ¿⌐ ¡Ñ»α«τ¿Γá¡¡δ⌐ ß¿¼ó«½.
  905.             
  906.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  907.             
  908.                öπ¡¬µ¿∩ read  ó«ºóαáΘáÑΓ  τ¿ß½«  ñÑ⌐ßΓó¿Γѽ∞¡«  »α«τ¿Γá¡¡δσ
  909.          íá⌐Γ«ó, ¬«Γ«α«Ñ ¼«ªÑΓ íδΓ∞ ¼Ñ¡∞ΦÑ, τѼ count. é«ºóαáΘáѼ«Ñ º¡áτÑ-
  910.          ¡¿Ñ 0 π¬áºδóáÑΓ ¡á »«»δΓ¬π τΓÑ¡¿∩ ¬«¡µá Σá⌐½á, á 1 - ßó¿ñÑΓѽ∞ßΓ-
  911.          óπÑΓ  «í «Φ¿í¬Ñ; ó φΓ¿σ ß½πτá∩σ errno πßΓá¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ,
  912.          ¬«Γ«α«Ñ «»¿ßá¡« ¡¿ªÑ.
  913.             
  914.             éѽ¿τ¿¡á          æ¼δß½«ó«Ñ º¡áτÑ¡¿Ñ
  915.             
  916.             EBADF       ºáñá¡¡δ⌐ handle ¡ÑóÑα¡δ⌐, ¿½¿ Σá⌐½ ¡Ñ ∩ó-
  917.                         ½∩ÑΓß∩ «Γ¬αδΓδ¼ ñ½∩ τΓÑ¡¿∩,  ¿½¿ ªÑ  Σá⌐½
  918.                         ºáí½«¬¿α«óá¡ (ºá¬αδΓ). (éÑαß¿∩ MS DOS 3.0
  919.                         ¿ »«ß½ÑñπεΘ¿Ñ).
  920.             
  921.                àß½¿ »α«τ¿Γá¡« í«½∞ΦÑ 32è (¼á¬ß¿¼á½∞¡δ⌐ αẼÑα Γ¿»á int) ¿º
  922.          Σá⌐½á, ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ íπñÑΓ Γ¿»á unsigned int  (ß¼.»α¿¼Ñα,
  923.          »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ). Äñ¡á¬« ¼á¬ß¿¼á½∞¡«Ñ τ¿ß½« íá⌐Γ«ó, ¬«Γ«α«Ñ ¼«ª-
  924.          ¡«  »α«τ¿ΓáΓ∞ ¿º Σá⌐½á, αáó¡« 65534; »«ß¬«½∞¬π 65534 (¿½¿ OXFFFF)
  925.          ∩ó½∩ÑΓß∩ ¡Ñ«Γ½¿τ¿¼δ¼ «Γ -1, »«φΓ«¼π íπñÑΓ ó«ºóαáΘÑ¡á «Φ¿í¬á. àß½¿
  926.          Σá⌐½ «Γ¬αδΓ ó ΓѬßΓ«ó«¼ αѪ¿¼Ñ, ó«ºóαáΘáѼ«Ñ  º¡áτÑ¡¿Ñ  ¼«ªÑΓ  ¡Ñ
  927.          ß««ΓóÑΓßΓó«óáΓ∞ τ¿ß½π ñÑ⌐ßΓó¿Γѽ∞¡« »α«τ¿Γá¡¡δσ íá⌐Γ«ó. àß½¿ ΓѬ-
  928.          ßΓ«óδ⌐  αѪ¿¼ φΣΣÑ¬Γ¿óÑ¡, ¬áªñá∩ »áαá "éè-Åæ" ºá¼Ñ¡∩ÑΓß∩ ß¿¼ó«½«¼
  929.          Åæ. Å«ñßτ¿ΓδóáÑΓß∩ ó ó«ºóαáΘáѼ«¼ º¡áτÑ¡¿¿ Γ«½∞¬« «Γñѽ∞¡δ⌐  ß¿¼-
  930.          ó«½ Åæ. ¥Γá ºá¼Ñ¡á ¡Ñ ó½¿∩ÑΓ ¡á π¬áºáΓѽ∞ Σá⌐½á.
  931.                æ¼.ΓᬪѠcreat, fread, open, write.
  932.             
  933.                çá¼Ñτá¡¿Ñ: é MS DOS, ¬«úñá Σá⌐½ «Γ¬αδΓ ó ΓѬßΓ«ó«¼  αѪ¿¼Ñ,
  934.          ß¿¼ó«½  Γαá¬ΓπÑΓß∩  ¬á¬  ¿¡ñ¿¬áΓ«α  ¬«¡µá Σá⌐½á. àß½¿ óßΓαÑτáÑΓß∩
  935.          CONTROLL-Z, τΓÑ¡¿Ñ «¬á¡τ¿óáÑΓß∩ ¿ »α¿ ß½ÑñπεΘѼ τΓÑ¡¿¿  ó«ºóαáΘá-
  936.          ÑΓß∩  0  íá⌐Γ«ó.  ê¡ñ¿¬áΓ«α  ¬«¡µá  Σá⌐½á ¼«ªÑΓ ó«ß»αÑ»∩ΓßΓó«óáΓ∞
  937.          «τ¿ßΓ¬Ñ Σá⌐½á.
  938.             
  939.                Åα¿¼Ñα:
  940.             
  941.             #include <io.h>
  942.             #include <stdio.h>
  943.             #include <fcntl.h>
  944.  
  945.                                       - 190 -
  946.          
  947.          
  948.             
  949.             char buffer [60000]
  950.             
  951.             main ()
  952.              {
  953.                int fh;
  954.                unsigned int nbytes=60000, bytesread;
  955.             
  956.                if ((fn=open("c:/data/conf.dat",O_RDONLY))==-1) {
  957.                       perror("open failed on input file");
  958.                       exit (1);
  959.                       }
  960.                if ((bytesread=read(fh,buffer,nbytes))==-1)
  961.                       perror("");
  962.                else
  963.                    printf("Read %u bytes from file\n",bytesread);
  964.                .
  965.                .
  966.                .
  967.                }
  968.          
  969.                
  970.                REALLOC
  971.             
  972.             #include <malloc.h>    ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
  973.                                    Σπ¡¬µ¿¿
  974.             
  975.             char *realloc(ptr,size);
  976.             char *ptr;             π¬áºáΓѽ∞  ¡á αá¡ÑÑ ºáσóáτÑ¡¡δ⌐
  977.                                    í½«¬ »á¼∩Γ¿
  978.             unsigned size;         ¡«óδ⌐ αẼÑα ó íá⌐Γáσ
  979.             
  980.                Ä»¿ßá¡¿Ñ.
  981.             
  982.                öπ¡¬µ¿∩ realloc ¿º¼Ñ¡∩ÑΓ αẼÑα  αá¡ÑÑ  ºáσóáτÑ¡¡«ú«  í½«¬á
  983.          »á¼∩Γ¿. Çαúπ¼Ñ¡Γ ptr π¬áºδóáÑΓ ¡á ¡áτὫ í½«¬á. Çαúπ¼Ñ¡Γ size ºá-
  984.          ñáÑΓ ¡«óδ⌐ αẼÑα í½«¬á ó íá⌐Γáσ. æ«ñÑন¼«Ñ í½«¬á ¡Ñ ¿º¼Ñ¡∩ÑΓß∩.
  985.          Çαúπ¼Ñ¡Γ  ptr  ¼«ªÑΓ π¬áºδóáΓ∞ ¡á í½«¬, ¬«Γ«αδ⌐ ñ«½ªÑ¡ íδΓ∞ «ßó«-
  986.          í«ªñÑ¡ »αѪñÑ,  τѼ  »«ß½ÑñπεΓ  ó맮óδ  calloc,  halloc,  malloc,
  987.          realloc.
  988.             
  989.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  990.             
  991.                öπ¡¬µ¿∩  realloc ó«ºóαáΘáÑΓ char-π¬áºáΓѽ∞ ¡á »ÑαѺáσóáτÑ¡-
  992.          ¡δ⌐ í½«¬ »á¼∩Γ¿. ü½«¬ ¼«ªÑΓ íδΓ∞ »ÑαÑñó¿¡πΓ, Ñß½¿ Ñú« αẼÑαδ ¿º-
  993.          ¼Ñ¡Ñ¡δ, »«φΓ«¼π áαúπ¼Ñ¡Γ ptr ñ½∩ Σπ¡¬µ¿¿ realloc  ¡Ñ  «í∩ºáΓѽ∞¡«
  994.          ñ«½ªÑ¡ íδΓ∞ Γᬿ¼ ªÑ, ¬á¬ ¿ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  995.                é«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ NULL, Ñß½¿ »á¼∩Γ¿ ¡Ññ«ßΓáΓ«τ¡«, τΓ«íδ
  996.          αáßΦ¿α¿Γ∞  í½«¬ ¬ ºáñá¡¡«¼π αẼÑαπ. àß½¿ φΓ« »α«¿ßσ«ñ¿Γ, Γ« »Ñα-
  997.          ó«¡áτá½∞¡δ⌐ í½«¬ «ßó«í«ªñáÑΓß∩.
  998.                é »á¼∩Γ¿, ¡á ¬«Γ«απε π¬áºδóáÑΓ ó«ºóαáΘáѼ«Ñ  º¡áτÑ¡¿Ñ,  úá-
  999.          αá¡Γ¿α«óá¡«  óδαáó¡¿óá¡¿Ñ ñ½∩ σαá¡Ñ¡¿∩ ½εí«ú« Γ¿»á «íΩѬΓá. ùΓ«íδ
  1000.          »«½πτ¿Γ∞ π¬áºáΓѽ∞ ¡á Γ¿», «Γ½¿τ¡δ⌐ «Γ char, ¿ß»«½∞ºπÑΓß∩  »αÑ«í-
  1001.          αẫóáΓѽ∞ Γ¿»á ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩.
  1002.                æ¼.ΓᬪѠcaloc, free, halloc, malloc.
  1003.  
  1004.                                       - 191 -
  1005.          
  1006.          
  1007.             
  1008.                Åα¿¼Ñα:
  1009.            
  1010.             #include <malloc.h>
  1011.             #include <stdio.h>
  1012.             
  1013.             char *alloc;
  1014.             
  1015.             /*  óδí¿αáÑΓ  ñ«ßΓáΓ«τ¡«  í«½∞Φ«Ñ  »α«ßΓαá¡ßΓó« ñ½∩ 50
  1016.             ß¿¼ó«½«ó */
  1017.             
  1018.             alloc=malloc(50*sizeof(char));
  1019.             .
  1020.             .
  1021.             .
  1022.             
  1023.                /* »ÑαѺáσóáΓδóáÑΓ í½«¬, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ 100 ß¿¼ó«½«ó */
  1024.             if (alloc != NULL)
  1025.                alloc=realoc(alloc,100*sizeof(char));
  1026.          
  1027.                
  1028.                REMOVE
  1029.                
  1030.             #include <io.h>     ΓαÑíπÑΓß∩  Γ«½∞¬«  ñ½∩  «íΩ∩ó½Ñ¡¿∩
  1031.                                 Σπ¡¬µ¿¿
  1032.             #include <stdio.h>  ¿ß»«½∞ºπÑΓ  ½¿í«  <io.h>,     ½¿í«
  1033.                                 <stdio.h>
  1034.             
  1035.             int remove(pathname);
  1036.             char *pathname;     path-¿¼∩ πñá½∩Ѽ«ú« Σá⌐½á
  1037.             
  1038.                Ä»¿ßá¡¿Ñ.
  1039.             
  1040.                öπ¡¬µ¿∩ remove πñá½∩ÑΓ Σá⌐½, «»αÑñѽѡ¡δ⌐ »« pathname.
  1041.             
  1042.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1043.             
  1044.                öπ¡¬µ¿∩ remove ó«ºóαáΘáÑΓ 0, Ñß½¿ Σá⌐½ πß»ÑΦ¡« πñá½Ñ¡. é«º-
  1045.          óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ  ¿ errno πßΓá¡áó-
  1046.          ½¿óáÑΓß∩ ó «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐.
  1047.             
  1048.             
  1049.                ç¡áτÑ¡¿Ñ                         àú« ß¼δß½
  1050.             
  1051.          EACCES               path-¿¼∩ «»αÑñѽ∩ÑΓ ñ¿αÑ¬Γ«α¿⌐ ¿½¿ Σá⌐½
  1052.                               Γ«½∞¬« ñ½∩ τΓÑ¡¿∩
  1053.             
  1054.          ENOENT               Σá⌐½ ¿½¿ path-¿¼∩ ¡Ñ ¡á⌐ñÑ¡«
  1055.             
  1056.                æ¼.ΓᬪѠclose, unlink.
  1057.             
  1058.                Åα¿¼Ñα:
  1059.             
  1060.             #include <io.h>
  1061.             #include <stdio.h>
  1062.  
  1063.                                       - 192 -
  1064.          
  1065.          
  1066.             
  1067.             int result;
  1068.             
  1069.             result=remove("tmpfile");
  1070.             if (result == -1)
  1071.               perror("couldn't delete tmpfile");
  1072.                                                          
  1073.                
  1074.                RENAME
  1075.             
  1076.             #include <io.h>    ΓαÑíπÑΓß∩  Γ«½∞¬«  ñ½∩   «íΩ∩ó½Ñ¡¿∩
  1077.                                Σπ¡¬µ¿¿
  1078.             #include <stdio.h> ¿ß»«½∞ºπÑΓ   ½¿í«   <io.h>,    ½¿í«
  1079.                                <stdio.h>
  1080.             
  1081.             int rename (oldname,newname);
  1082.             char *oldname;      π¬áºáΓѽ∞ ¡á ßΓáα«Ñ ¿¼∩
  1083.             char *newname;      π¬áºáΓѽ∞ ¡á ¡«ó«Ñ ¿¼∩
  1084.             
  1085.                Ä»¿ßá¡¿Ñ.
  1086.             
  1087.                öπ¡¬µ¿∩ rename »ÑαÑ¿¼Ñ¡«óδóáÑΓ Σá⌐½ ¿½¿ ñ¿αÑ¬Γ«α¿⌐, «»αÑñÑ-
  1088.          ½∩Ѽδ⌐ »« ¿¼Ñ¡¿ newname. Oldname ñ«½ª¡« ºáñáóáΓ∞ path-¿¼∩ ßπΘÑßΓ-
  1089.          óπεΘÑú«  Σá⌐½á  ¿½¿ ñ¿αÑ¬Γ«α¿∩. Newname ¡Ñ «»αÑñѽ∩ÑΓ ¿¼∩ πªÑ ßπ-
  1090.          ΘÑßΓóπεΘÑú« Σá⌐½á ¿½¿ ñ¿αÑ¬Γ«α¿∩. öπ¡¬µ¿ε rename ¼«ª¡«  ¿ß»«½∞º«-
  1091.          óáΓ∞  ñ½∩  »ÑαѼÑΘÑ¡¿∩  Σá⌐½á ¿º «ñ¡«ú« ñ¿αÑ¬Γ«α¿∩ ó ñαπú«⌐, Ñß½¿
  1092.          ºáñáΓ∞ ñαπú«Ñ path-¿¼∩ ó áαúπ¼Ñ¡ΓÑ newname. Äñ¡á¬«, Σá⌐½δ ¡Ñ  ¼«-
  1093.          úπΓ  íδΓ∞  »ÑαѼÑΘÑ¡δ  ß «ñ¡«ú« πßΓα«⌐ßΓóá ¡á ñαπú«Ñ (¡á»α¿¼Ñα, ß
  1094.          ñ¿ß¬«ó«ñá Ç ¡á ñ¿ß¬«ó«ñ é). ä¿αÑ¬Γ«α¿¿  ¼«ª¡«  »ÑαÑ¿¼Ñ¡«óδóáΓ∞  ¿
  1095.          ¡Ñ½∞º∩ »ÑαѼÑΘáΓ∞.
  1096.             
  1097.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1098.             
  1099.                öπ¡¬µ¿∩  rename ó«ºóαáΘáÑΓ 0, Ñß½¿ «¡á óδ»«½¡Ñ¡á πß»ÑΦ¡«. é
  1100.          ß½πτáÑ «Φ¿í¬¿ ó«ºóαáΘáÑΓß∩ ¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ  ¿ errno πßΓá¡áó½¿-
  1101.          óáÑΓß∩ ó «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
  1102.  
  1103.                            
  1104.                ç¡áτÑ¡¿Ñ                          àú« ß¼δß½
  1105.                            
  1106.          EACCES               öá⌐½  ¿½¿  ñ¿αÑ¬Γ«α¿⌐,  ºáñá¡¡δ⌐     »«
  1107.                               newname, ßπΘÑßΓóπÑΓ ¿½¿ ¡Ñ  ¼«ªÑΓ  íδΓ∞
  1108.                               ß«ºñá¡ (¡ÑóÑα¡δ⌐  path),   ¿½¿  oldname
  1109.                               ∩ó½∩ÑΓß∩    ñ¿αÑ¬Γ«α¿Ñ¼   ¿     newname
  1110.                               «»αÑñѽ∩ÑΓ ñαπú«⌐  path.
  1111.                 
  1112.                            
  1113.          ENOENT               öá⌐½ ¿½¿ path-¿¼∩, ºáñá¡¡δÑ »« oldname,
  1114.                               ¡Ñ  ¡á⌐ñÑ¡δ.
  1115.                            
  1116.          EXDEV                Å«»δΓ¬á  »ÑαѼÑΘÑ¡¿∩  Σá⌐½á  ¡á  ñαπú«Ñ
  1117.                               πßΓα«⌐ßΓó«.
  1118.  
  1119.             
  1120.                æ¼.ΓᬪѠcreate, fopen, open.
  1121.  
  1122.                                       - 193 -
  1123.          
  1124.          
  1125.             
  1126.                çá¼Ñτá¡¿Ñ. ìπª¡« ºá¼ÑΓ¿Γ∞, τΓ« »«α∩ñ«¬ áαúπ¼Ñ¡Γ«ó ó  rename
  1127.          ñ½∩ Microsoft C 4.0 »α«Γ¿ó«»«½«ªÑ¡ »«α∩ñ¬π rename ñ½∩ αá¡¡¿σ óÑα-
  1128.          ß¿⌐.  ¥Γ«  ¿º¼Ñ¡Ñ¡¿Ñ  í佫  ßñѽᡫ  ó ß««ΓóÑΓßΓó¿¿ ß« ßΓá¡ñáαΓ«¼
  1129.          ANSI.
  1130.                
  1131.                Åα¿¼Ñα:
  1132.             
  1133.             #include <io.h>
  1134.             
  1135.             int result;
  1136.             
  1137.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ¿º¼Ñ¡∩ÑΓ ¿¼∩ Σá⌐½á "input" ** ¡á  ¿¼∩
  1138.          "data" */
  1139.             
  1140.             result = rename("input", "data");
  1141.          
  1142.                
  1143.                REWIND
  1144.             
  1145.             #include <stdio.h>
  1146.             
  1147.             void rewind(stream);
  1148.                                                                   
  1149.             FILE *stream;            π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1150.                                                                   
  1151.                Ä»¿ßá¡¿Ñ.
  1152.                                                                   
  1153.                öπ¡¬µ¿∩ rewind »ÑαѼÑΘáÑΓ π¬áºáΓѽ∞ ¡á  Σá⌐½,  ßó∩ºá¡¡δ⌐  ß
  1154.          »«Γ«¬«¼ stream, ¬ ¡áτá½π Σá⌐½á. é맮ó Σπ¡¬µ¿¿ rewind φ¬ó¿óá½Ñ¡ΓÑ¡
  1155.          ó맮óπ ß½ÑñπεΘÑ⌐ Σπ¡¬µ¿¿:
  1156.             
  1157.             fseek(stream, OL, SEEK_SET);
  1158.             
  1159.                ß πτÑΓ«¼ Γ«ú«, τΓ« ó »«Γ«¬Ñ rewind «τ¿ΘáÑΓ «Φ¿í¬¿ ¿ ¿¡ñ¿¬á-
  1160.          Γ«αδ  ¬«¡µá Σá⌐½á, á fseek φΓ«ú« ¡Ñ ñѽáÑΓ. Fseek ó«ºóαáΘáÑΓ º¡á-
  1161.          τÑ¡¿Ñ,¬«Γ«α«Ñ «»αÑñѽ∩ÑΓ, πß»ÑΦ¡« ¿½¿ ¡ÑΓ  »ÑαÑñó¿¡πΓ  π¬áºáΓѽ∞.
  1162.          Rewind ¡Ñ ó«ºóαáΘáÑΓ ¡¿¬á¬«ú« º¡áτÑ¡¿∩.
  1163.             
  1164.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1165.            
  1166.                é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  1167.                æ¼. ΓᬪѠfseek, ftell.
  1168.             
  1169.                Åα¿¼Ñα:
  1170.             
  1171.             #include <stdio.h>
  1172.                                                                   
  1173.             FILE *stream;
  1174.             int data1, data2;
  1175.             .
  1176.             .
  1177.             .
  1178.             fprintf(stream, "%d  %d", data1, data2);
  1179.             /* αáß»«½áúáÑΓ ñá¡¡δÑ ó Σá⌐½ */
  1180.  
  1181.                                       - 194 -
  1182.          
  1183.          
  1184.             
  1185.             rewind(stream);
  1186.             /* τ¿ΓáÑΓ Σá⌐½ ñá¡¡δσ */
  1187.             
  1188.             fscanf(stream, "%d", &data1);.
  1189.             
  1190.                
  1191.                RMDIR
  1192.             
  1193.             #include <direct.h>  ΓαÑíπÑΓß∩  Γ«½∞¬«  ñ½∩ «íΩ∩ó½Ñ¡¿∩
  1194.                                  Σπ¡¬µ¿¿
  1195.             
  1196.             int rmdir(pathname);
  1197.             char *pathname;      path-¿¼∩ πñá½∩Ѽ«ú« ñ¿αÑ¬Γ«α¿∩
  1198.             
  1199.                Ä»¿ßá¡¿Ñ.
  1200.               
  1201.                öπ¡¬µ¿∩ rmdir πñá½∩ÑΓ ñ¿αÑ¬Γ«α¿⌐, «»αÑñѽ∩Ѽδ⌐ »« pathname.
  1202.          ä¿αÑ¬Γ«α¿⌐  ñ«½ªÑ¡ íδΓ∞ »πßΓδ¼ ¿ «¡ ¡Ñ ¼«ªÑΓ íδΓ∞ ΓѬπΘ¿¼ αáí«τ¿¼
  1203.          ñ¿αÑ¬Γ«α¿Ñ¼ ¿½¿ ñ¿αÑ¬Γ«α¿Ñ¼ ¬«α¡∩.
  1204.             
  1205.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1206.             
  1207.                öπ¡¬µ¿∩ rmdir ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 0, Ñß½¿ ñ¿αÑ¬Γ«α¿⌐ πß»ÑΦ-
  1208.          ¡« πñá½Ñ¡. é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ   ¿
  1209.          errno πßΓá¡áó½¿óáÑΓß∩ ó «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
  1210.  
  1211.                ç¡áτÑ¡¿Ñ                       àú« ß¼δß½
  1212.                                  
  1213.          EACCES               çáñá¡¡«Ñ path-¿¼∩ ¡Ñ ∩ó½∩ÑΓß∩  ñ¿αÑ¬Γ«-
  1214.                               α¿Ñ¼; ¿½¿ ñ¿αÑ¬Γ«α¿⌐ ¡Ñ »πßΓ,  ¿½¿  ñ¿-
  1215.                               αÑ¬Γ«α¿⌐ ∩ó½∩ÑΓß∩ ΓѬπΘ¿¼ αáí«τ¿¼   ñ¿-
  1216.                               αÑ¬Γ«α¿Ñ¼  ¿½¿ ñ¿αÑ¬Γ«α¿Ñ¼ ¬«α¡∩.
  1217.                            
  1218.          ENOENT               Path-¿¼∩ ¡Ñ ¡á⌐ñÑ¡«
  1219.  
  1220.             
  1221.                æ¼.ΓᬪѠchdir, mkdir.
  1222.             
  1223.                Åα¿¼Ñα:
  1224.             
  1225.             #include <direct.h>
  1226.             
  1227.             int result1, result2;
  1228.             
  1229.                /*  ß½ÑñπεΘ¿Ñ  «»ÑαáΓ«αδ  πñá½∩εΓ ñóá ñ¿αÑ¬Γ«α¿∩: ** «ñ¿¡ ó
  1230.          ¬«α¡Ñ, ñαπú«⌐ - ó ΓѬπΘѼ αáí«τѼ ** ñ¿αÑ¬Γ«α¿¿ */
  1231.             
  1232.             result1=rmdir("/data1");
  1233.             result2=rmdir("data2");
  1234.          
  1235.                
  1236.                RMTMP
  1237.             
  1238.             #include <stdio.h>
  1239.  
  1240.                                       - 195 -
  1241.          
  1242.          
  1243.                                                                   
  1244.             int rmtmp;
  1245.                                                                   
  1246.                Ä»¿ßá¡¿Ñ.
  1247.                                                                   
  1248.                öπ¡¬µ¿∩  rmtmp ¿ß»«½∞ºπÑΓß∩ ñ½∩ «τ¿ßΓ¬¿ óßÑσ óαѼѡ¡δσ Σá⌐-
  1249.          ½«ó ó ΓѬπΘѼ ñ¿αÑ¬Γ«α¿¿. ¥Γá Σπ¡¬µ¿∩ «τ¿ΘáÑΓ  ¿  πñá½∩ÑΓ  Γ«½∞¬«
  1250.          Σá⌐½δ, ß«ºñá¡¡δÑ »α¿ »«¼«Θ¿ tmpfile.
  1251.                öπ¡¬µ¿∩  rmtmp ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó Γ«¼ ªÑ ßἫ¼ ñ¿αÑ¬Γ«-
  1252.          α¿¿, úñÑ ß«ºñáó὿ß∞ óαѼѡ¡δÑ Σá⌐½δ.
  1253.             
  1254.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1255.             
  1256.                ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¬«½¿τÑßΓó« «τ¿ΘÑ¡¡δσ ¿  π¡¿τΓ«ªÑ¡¡δσ
  1257.          óαѼѡ¡δσ Σá⌐½«ó.
  1258.                æ¼. ΓᬪѠflushall, tmpfile, tmpnam.
  1259.             
  1260.                Åα¿¼Ñα:
  1261.             
  1262.             #include <stdio.h>
  1263.             
  1264.             main ()
  1265.             
  1266.                  {
  1267.                   int numdeleted;
  1268.                   .
  1269.                   .
  1270.                   .
  1271.                   if ((stream = tmpfile()) == NULL)
  1272.                      perror ("Couldn't open new temporary file");
  1273.                   .
  1274.                   .
  1275.                   .
  1276.                   numdeleted = rmtmp;
  1277.                   printf ("Number of files closed and deleted in\
  1278.                   current directory = %d\n", numdeleted);
  1279.                  }.
  1280.                
  1281.                
  1282.                
  1283.                SBRK
  1284.             
  1285.             #include <malloc.h>    ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
  1286.                                    Σπ¡¬µ¿¿
  1287.             
  1288.             char *sbrk(incr);
  1289.             int incr;              ¬«½¿τÑßΓó«   ñ«íáó½∩Ѽδσ    ¿½¿
  1290.                                    óδτ¿ΓáѼδσ  íá⌐Γ«ó
  1291.             
  1292.                Ä»¿ßá¡¿Ñ.
  1293.             
  1294.                öπ¡¬µ¿∩ sbrk »ÑαÑπßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ αáºαδóá ñ½∩ óδºóá¡-
  1295.          ¡«ú«  »α«µÑßßá.  ç¡áτÑ¡¿Ñ¼  αáºαδóá  ∩ó½∩ÑΓß∩ áñαÑß »Ñαó«ú« íá⌐Γá
  1296.          ºáσóáτÑ¡¡«⌐ »á¼∩Γ¿. öπ¡¬µ¿∩ sbrk ñ«íáó½∩ÑΓ incr íá⌐Γδ ¬  º¡áτÑ¡¿ε
  1297.          αáºαδóá;  ß««ΓóÑΓßΓóÑ¡¡« φΓ«¼π πßΓá¡áó½¿óáÑΓß∩ αẼÑα ºáσóáΓδóáÑ-
  1298.  
  1299.                                       - 196 -
  1300.          
  1301.          
  1302.          ¼«⌐ »á¼∩Γ¿.
  1303.             
  1304.                çá¼Ñτá¡¿Ñ. Incr ¼«ªÑΓ íδΓ∞ «Γα¿µáΓѽ∞¡δ¼, Γ«úñá  ¬«½¿τÑßΓó«
  1305.          ºáσóáτÑ¡¡«⌐ »á¼∩Γ¿ π¼Ñ¡∞ΦáÑΓß∩ ¡á incr íá⌐Γ«ó.
  1306.             
  1307.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1308.             
  1309.                öπ¡¬µ¿∩ sbrk ó«ºóαáΘáÑΓ ßΓáα«Ñ º¡áτÑ¡¿Ñ αáºαδóá. é«ºóαáΘáÑ-
  1310.          ¼«Ñ  º¡áτÑ¡¿Ñ  -1  π¬áºδóáÑΓ ¡á «Φ¿í¬π  ¿ errno πßΓá¡áó½¿óáÑΓß∩ ó
  1311.          ENOMEN, π¬áºδóá∩, τΓ« «ßΓὫß∞ ¡Ññ«ßΓáΓ«τ¡« »á¼∩Γ¿.
  1312.                æ¼.ΓᬪѠcalloc, free, malloc, realloc.
  1313.             
  1314.                çá¼Ñτá¡¿Ñ. é ¬«¼»á¬Γ¡«⌐, í«½∞Φ«⌐  ¿  huge-¼«ñѽ∩σ  »α«úαá¼¼
  1315.          Σπ¡¬µ¿∩  sbrk «ΓßπΓßΓóπÑΓ ¿ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ -1. é í«½∞Φ¿σ ¼«-
  1316.          ñѽ∩σ »α«úαá¼¼ ñ½∩ ºáσóáΓá ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ malloc.
  1317.  
  1318.             
  1319.                Åα¿¼Ñα:
  1320.             
  1321.             #include <malloc.h>
  1322.             #include <stdio.h>
  1323.             
  1324.             /* ºáσóáΓδóáÑΓ »á¼∩Γ∞ ó 100 íá⌐Γ */
  1325.             
  1326.             char *alloc;
  1327.             alloc=sbrk(100);
  1328.             .
  1329.             .
  1330.             .
  1331.             
  1332.             /* π¼Ñ¡∞ΦáÑΓ ºáσóáτÑ¡¡πε »á¼∩Γ∞ ñ« 60 íá⌐Γ  */
  1333.             
  1334.             if (alloc != (char)-1)
  1335.                    sbrk(-40);
  1336.                                                 
  1337.                
  1338.                SCANF
  1339.             
  1340.             #include <stdio.h>
  1341.                                                                   
  1342.             int scanf(format-string[[, argument...]]);
  1343.             char *format-string.       ßΓ᫬á π»αáó½Ñ¡¿∩ Σ«α¼áΓ«¼.
  1344.                                                                   
  1345.                Ä»¿ßá¡¿Ñ.
  1346.                                                                   
  1347.                öπ¡¬µ¿∩ scanf τ¿ΓáÑΓ ñá¡¡δÑ ¿º ßΓá¡ñáαΓ¡«ú« »«Γ«¬á stdin  ó
  1348.          ¼ÑßΓ«, «»αÑñѽ∩Ѽ«Ñ áαúπ¼Ñ¡ΓἿ arguments. èáªñδ⌐ áαúπ¼Ñ¡Γ ñ«½ªÑ¡
  1349.          íδΓ∞  π¬áºáΓѽѼ ¡á º¡áτÑ¡¿Ñ ß Γ¿»«¼, ¬«Γ«αδ⌐ ß««ΓóÑΓßΓóπÑΓ Γ¿»π,
  1350.          ºáñá¡¡«¼π ó ßΓα«¬Ñ Σ«α¼áΓá. æΓ᫬á Σ«α¼áΓá π»αáó½∩ÑΓ »αÑ«íαáºáóá-
  1351.          ¡¿∩¼¿ »«½Ñ⌐ óó«ñá. ¥Γá ßΓα«¬á ¼«ªÑΓ ß«ñÑαªáΓ∞ ß½ÑñπεΘÑÑ:
  1352.             
  1353.                "Åα«íѽ∞¡δÑ" ß¿¼ó«½δ, Γ.Ñ. ß¿¼ó«½ »α«íѽá ' ', Γáíπ½∩µ¿¿ \t,
  1354.          ¡«ó«⌐ ßΓ᫬¿ '\n'. ä½∩ Σπ¡¬µ¿¿ scanf ß¿¼ó«½«¼ »α«íѽᠫ»αÑñѽ∩ÑΓ-
  1355.          ß∩ ßτ¿Γδóá¡¿Ñ, ¡« íѺ ºá»«¼¿¡á¡¿∩, óßÑσ óó«ñ¿¼δσ »«ß½ÑñπεΘ¿σ ß¿¼-
  1356.          ó«½«ó »α«íѽá ó»½«Γ∞ ñ« »Ñαó«ú« ß¿¼ó«½á, ¡Ñ ∩ó½∩εΘÑú«ß∩ »α«íѽ«¼.
  1357.  
  1358.                                       - 197 -
  1359.          
  1360.          
  1361.          Åα¿  óó«ñÑ «ñ¿¡ ß¿¼ó«½ »α«íѽá ó ßΓα«¬Ñ Σ«α¼áΓá ß««ΓóÑΓßΓóπÑΓ ½ε-
  1362.          í«¼π τ¿ß½π, ó¬½ετá∩ 0, ¿½¿ ½εí«⌐ ¬«¼í¿¡áµ¿¿ ß¿¼ó«½«ó »α«íѽá.
  1363.                ïεí«⌐ ß¿¼ó«½ π»αáó½Ñ¡¿∩, ¡Ñ ∩ó½∩εΘ¿⌐ß∩ »α«íѽ«¼ ¿  ß¿¼ó«½«¼
  1364.          º¡á¬á  »α«µÑ¡Γá %. Æ«úñá »« φΓ«¼π ß¿¼ó«½π ñ½∩ Σπ¡¬µ¿¿ scanf «»αÑ-
  1365.          ñѽ∩ÑΓß∩ ßτ¿Γδóá¡¿Ñ, ¡« íѺ ºá»«¼¿¡á¡¿∩ ß««ΓóÑΓßΓóπεΘ¿σ  ß¿¼ó«½«ó
  1366.          π»αáó½Ñ¡¿∩. àß½¿ ß½ÑñπεΘ¿⌐ ß¿¼ó«½ ó <stdin> ¡Ñ ß««ΓóÑΓßΓóπÑΓ ß¿¼-
  1367.          ó«½á¼ π»αáó½Ñ¡¿∩, Γ« scanf «¬á¡τ¿óáÑΓ ßó«ε αáí«Γπ.
  1368.                æ»Ñµ¿Σ¿¬áµ¿ε  Σ«α¼áΓá, óóÑñÑ¡¡πε ß« º¡á¬«¼ %. é φΓ«¼ ß½πτáÑ
  1369.          scanf τ¿ΓáÑΓ ¿ »αÑ«íαẫóδóáÑΓ óóÑñÑ¡¡δÑ ß¿¼ó«½δ ¬ º¡áτÑ¡¿∩¼  ºá-
  1370.          ñá¡¡«ú« Γ¿»á, »α¿τѼ º¡áτÑ¡¿∩ «»αÑñѽ∩εΓß∩ ß««ΓóÑΓßΓóπεΘ¿¼¿ áαúπ-
  1371.          ¼Ñ¡ΓἿ ¿º ß»¿ß¬á áαúπ¼Ñ¡Γ«ó.
  1372.             
  1373.                æΓ᫬á Σ«α¼áΓá τ¿ΓáÑΓß∩ ß½Ñóá ¡á»αáó«. æ¿¼ó«½δ ó¡Ñ ß»Ñµ¿Σ¿-
  1374.          ¬áµ¿¿ Σ«α¼áΓá »αÑñ»«½áúáεΓß∩ ß«ú½áß«óá¡¡δ¼¿ ß »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ε
  1375.          ß¿¼ó«½«ó ó »«Γ«¬Ñ stdin; φΓ¿ ß«ú½áß«óá¡¡δÑ ß¿¼ó«½δ ó stdin ß¬á¡¿-
  1376.          απεΓß∩,  ¡«  ¡Ñ  ºá»«¼¿¡áεΓß∩.  àß½¿  ß¿¼ó«½ ó stdin »α«Γ¿ó«αÑτ¿Γ
  1377.          ßΓα«¬Ñ Σ«α¼áΓá, scanf «¬á¡τ¿óáÑΓ ßó«ε αáí«Γπ. ¥Γ«Γ  ¬«¡Σ½¿¬ΓπεΘ¿⌐
  1378.          ß¿¼ó«½ «ßΓáÑΓß∩ ó stdin, Γᬠ¬á¬ «¡ ¡Ñ ¼«ªÑΓ íδΓ∞ »α«τ¿Γá¡. è«úñá
  1379.          óßΓαÑτáÑΓß∩  »Ñαóá∩  ß»Ñµ¿Σ¿¬áµ¿∩ Σ«α¼áΓá, Γ«úñá º¡áτÑ¡¿Ñ »Ñαó«ú«
  1380.          »«½∩ óó«ñá »αÑ«íαẫóδóáÑΓß∩ ó ß««ΓóÑΓßΓó¿¿ ß« ß»Ñµ¿Σ¿¬áµ¿Ñ⌐ Σ«α-
  1381.          ¼áΓá ¿ ºá»«¼¿¡áÑΓß∩ ó ¼ÑßΓÑ, ºáñá¡¡«¼ »Ñαóδ¼ áαúπ¼Ñ¡Γ«¼. Å«  óΓ«-
  1382.          α«⌐  ß»Ñµ¿Σ¿¬áµ¿¿ Σ«α¼áΓá óδ»«½¡∩ÑΓß∩ »αÑ«íαẫóá¡¿Ñ óΓ«α«ú« »«½∩
  1383.          óó«ñá ¿ ºá»«¼¿¡á¡¿Ñ Ñú« »« óΓ«α«¼π  áαúπ¼Ñ¡Γπ;  ¿  Γᬠ ñ«  ¬«¡µá
  1384.          ßΓ᫬¿ Σ«α¼áΓá.
  1385.                Å«½Ñ  óó«ñá «úαá¡¿τ¿óáÑΓß∩ »Ñαóδ¼ "»α«íѽ∞¡δ¼" ß¿¼ó«½«¼ ¿½¿
  1386.          »Ñαóδ¼ ß¿¼ó«½«¼, ¬«Γ«αδ⌐ ¡Ñ ¼«ªÑΓ  »αÑ«íαẫóáΓ∞ß∩  »«  ºáñá¡¡«¼π
  1387.          Σ«α¼áΓπ, ¿½¿ ß½πτáѼ ñ«ßΓ¿ªÑ¡¿∩ »«½∩ width, ¬«Γ«α«Ñ ¿ñÑΓ »Ñαóδ¼.
  1388.                àß½¿ ñ½∩ óδíαá¡¡«⌐ ß»Ñµ¿Σ¿¬áµ¿¿ Σ«α¼áΓá ºáñá¡« í«½∞ΦÑ áαúπ-
  1389.          ¼Ñ¡Γ«ó, τѼ ΓαÑíπÑΓß∩, Γ« ½¿Φ¡¿Ñ áαúπ¼Ñ¡Γδ ¿ú¡«α¿απεΓß∩.
  1390.                æ»Ñµ¿Σ¿¬áµ¿∩ Σ«α¼áΓá ¿¼ÑÑΓ ß½ÑñπεΘπε Σ«α¼π.
  1391.  
  1392.                %<flags><wigth><.precision><{F:N:h:I}><type>.
  1393.             
  1394.                èáªñ«Ñ  »«½Ñ ó Σ«α¼áΓѠ߻ѵ¿Σ¿¬áµ¿⌐ ∩ó½∩ÑΓß∩ «Γñѽ∞¡δ¼ ß¿¼-
  1395.          ó«½«¼ ¿½¿ τ¿ß½«¼,  óδαáªáεΘ¿¼  «Γñѽ∞¡πε  «»µ¿ε  Σ«α¼áΓá.  æ¿¼ó«½
  1396.          type, »«∩ó½∩εΘ¿⌐ß∩ »«ß½Ñ »«ß½Ññ¡Ñú« ¡Ñ«í∩ºáΓѽ∞¡«ú« »«½∩ Σ«α¼áΓá,
  1397.          «»αÑñѽ∩ÑΓ Γ¿» »«½∩ óó«ñᠬᬠ߿¼ó«½∞¡«ú«, ßΓ᫬«ó«ú« ¿½¿ τ¿ß½Ñ¡-
  1398.          ¡«ú«.
  1399.                Åα«ßΓÑ⌐Φ¿⌐ Σ«α¼áΓ ß»Ñµ¿Σ¿¬áµ¿¿ ß«ñÑαª¿Γ Γ«½∞¬« ß¿¼ó«½ º¡á¬á
  1400.          »α«µÑ¡Γá ¿ ß¿¼ó«½ Γ¿»á (¡á»α¿¼Ñα, %S).
  1401.                èáªñ«Ñ »«½Ñ ß»Ñµ¿Σ¿¬áµ¿¿ Σ«α¼áΓá «»¿ßδóáÑΓß∩ ¡¿ªÑ.
  1402.                àß½¿  ºá  º¡á¬«¼  »α«µÑ¡Γá  % ß½ÑñπÑΓ ß¿¼ó«½, ¡Ñ ∩ó½∩εΘ¿⌐ß∩
  1403.          ß¿¼ó«½«¼ π»αáó½Ñ¡¿∩ Σ«α¼áΓ«¼, Γ« φΓ«Γ ß¿¼ó«½ ¿ ¿ñπΘ¿Ñ ºá ¡¿¼ ß¿¼-
  1404.          ó«½δ, ó»½«Γ∞ ñ« ß½ÑñπεΘÑú« º¡á¬á %, Γαá¬ΓπεΓß∩ ¬á¬ «íδτ¡á∩ »«ß½Ñ-
  1405.          ñ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó, Γ.Ñ. »«ß½Ññ«óáΓѽ∞¡«ßΓ∞,  ¬«Γ«αá∩  ñ«½ª¡á
  1406.          íδΓ∞ óóÑñÑ¡á. ìá»α¿¼Ñα, τΓ«íδ óóÑßΓ¿ ß¿¼ó«½ º¡á¬á %, ¿ß»«½∞ºπÑΓß∩
  1407.          ¬«¼í¿¡áµ¿∩ %%.
  1408.                çóѺñ«τ¬á  (*),  ¿ñπΘá∩  ºá  º¡á¬«¼ %, »«ñáó½∩ÑΓ ¡áº¡áτÑ¡¿Ñ
  1409.          ß½ÑñπεΘÑú« »«½∩ óó«ñá, ºáñáεΘÑú«ß∩ ¬á¬ »«½Ñ,  «»αÑñѽ∩Ѽ«Ñ  Γ¿»«¼
  1410.          type. ¥Γ« »«½Ñ ß¬á¡¿απÑΓß∩, ¡« ¡Ñ ºá»«¼¿¡áÑΓß∩.
  1411.                Widht  ∩ó½∩ÑΓß∩  »«½«ª¿Γѽ∞¡δ¼ ñÑß∩Γ¿τ¡δ¼ µÑ½δ¼ ¿ π»αáó½∩ÑΓ
  1412.          ¼á¬ß¿¼á½∞¡« ó«º¼«ª¡δ¼ τ¿ß½«¼ ß¿¼ó«½«ó, ßτ¿ΓδóáѼδσ ¿º stdin. ÅαÑ-
  1413.          «íαẫóδóáεΓß∩ ¿ ºá»«¼¿¡áεΓß∩ »« ß««ΓóÑΓßΓóπεΘѼπ áαúπ¼Ñ¡Γπ Γ«½∞-
  1414.          ¬« ΓÑ ß¿¼ó«½δ, ¬«Γ«αδÑ ¡Ñ »αÑóδΦáεΓ width. àß½¿ ó width  óßΓαÑτá-
  1415.          εΓß∩  "»α«íѽ∞¡δÑ"  ß¿¼ó«½δ,  Γ.Ñ. ß¿¼ó«½δ »α«íѽá, Γáíπ½∩µ¿¿ ¿½¿
  1416.  
  1417.                                       - 198 -
  1418.          
  1419.          
  1420.          ¡«ó«⌐ ßΓ᫬¿, Γ« »« óδíαá¡¡«¼π Σ«α¼áΓπ «¡¿ ¡Ñ  »αÑ«íαẫóδóáεΓß∩,
  1421.          »«¬á ¡Ñ íπñÑΓ ñ«ßΓ¿ú¡πΓ αẼÑα width.
  1422.                ìÑ«í∩ºáΓѽ∞¡δÑ  »αÑΣ¿¬ßδ  F  ¿  N  ¡Ñ πτ¿ΓδóáεΓ »α¿¡∩Γ«Ñ »«
  1423.          π¼«½τá¡¿ε áñαÑß¡«Ñ ß«ú½áΦÑ¡¿Ñ ¿ß»«½∞ºπѼδσ ¼«ñѽÑ⌐ »á¼∩Γ¿. F  ¼«-
  1424.          ªÑΓ  íδΓ∞ »αÑΣ¿¬ß«¼ ¬ áαúπ¼Ñ¡Γπ argument, π¬áºδóáΘѼπ ¡á far-«íΩ-
  1425.          Ñ¬Γ; á N - ¡á near-«íΩѬΓ.
  1426.                ìÑ«í∩ºáΓѽ∞¡δ⌐ »αÑΣ¿¬ß l ßó¿ñÑΓѽ∞ßΓóπÑΓ « Γ«¼, τΓ« ¿ß»«½∞-
  1427.          ºπÑΓß∩ óÑαß¿∩ long; á »αÑΣ¿¬ß h - π¬áºδóáÑΓ ¡á ¿ß»«½∞º«óá¡¿Ñ óÑα-
  1428.          ß¿¿  short.  æ««ΓóÑΓßΓóπεΘ¿⌐  argument  π¬áºδóáÑΓ  ¡á  long   ¿½¿
  1429.          double-«íΩÑ¬Γ  (»α¿  »«¼«Θ¿ »αÑΣ¿¬ßá l)  ¿½¿ ¡á short-«íΩÑ¬Γ (»α¿
  1430.          »«¼«Θ¿ »αÑΣ¿¬ßá h). î«ñ¿Σ¿¬áΓ«αδ l ¿ h ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó¼Ñß-
  1431.          ΓÑ ß Γ¿»á¼¿ ß¿¼ó«½«ó d, i, o, x, u. î«ñ¿Σ¿¬áΓ«α l ΓᬪѠ¼«ªÑΓ ¿ß-
  1432.          »«½∞º«óáΓ∞ß∩ ß ß¿¼ó«½á¼¿ type e ¿ f. àß½¿ «»αÑñѽѡ ½εí«⌐  ñαπú«⌐
  1433.          type, ¼«ñ¿Σ¿¬áΓ«αδ l ¿ h ¿ú¡«α¿απεΓß∩.
  1434.                 
  1435.                æ¿¼ó«½δ type ¿ ¿σ º¡áτÑ¡¿∩ «»¿ßá¡δ ó Γáí½¿µÑ R.4.
  1436.             
  1437.                                                         Æáí½¿µá R.4
  1438.                
  1439.                            Æ¿»δ ß¿¼ó«½«ó Σπ¡¬µ¿¿ scanf
  1440.             
  1441.             æêîéÄï    ÅÉàäÅÄïÇâÇàî¢ë ÆêÅ        ÆêÅ ÇÉâôîàìÆÇ
  1442.                            ééÄäÇ
  1443.            
  1444.       
  1445.               d       ñÑß∩Γ¿τ¡δ⌐   µÑ½δ⌐     π¬áºáΓѽ∞ ¡á  int.
  1446.                 
  1447.               D       ñÑß∩Γ¿τ¡δ⌐   µÑ½δ⌐     π¬áºáΓѽ∞ ¡á  long.
  1448.            
  1449.               o       ó«ß∞¼Ñα¿τ¡δ⌐ µÑ½δ⌐     π¬áºáΓѽ∞ ¡á  int.
  1450.             
  1451.               O       ó«ß∞¼Ñα¿τ¡δ⌐ µÑ½δ⌐     π¬áºáΓѽ∞ ¡á  long.
  1452.                                        
  1453.               x       ΦÑßΓ¡áñµáΓÑα¿τ¡δ⌐      π¬áºáΓѽ∞ ¡á  int.
  1454.                       µÑ½δ⌐
  1455.             
  1456.               X       ΦÑßΓ¡áñµáΓÑα¿τ¡δ⌐      π¬áºáΓѽ∞ ¡á  long.
  1457.                       µÑ½δ⌐
  1458.             
  1459.               i       ñÑß∩Γ¿τ¡δ⌐,  ó«ß∞-     π¬áºáΓѽ∞ ¡á  int.
  1460.                       ¼Ñα¿τ¡δ⌐ ¿½¿ ΦÑßΓ-
  1461.                       ¡áñµáΓÑα¿τ¡δ⌐  µÑ-
  1462.                       ½δ⌐
  1463.       
  1464.               I       ñÑß∩Γ¿τ¡δ⌐,  ó«ß∞-     π¬áºáΓѽ∞ ¡á  long.
  1465.                       ¼Ñα¿τ¡δ⌐ ¿½¿ ΦÑßΓ-
  1466.                       ¡áñµáΓÑα¿τ¡δ⌐  µÑ-
  1467.                       ½δ⌐
  1468.             
  1469.               u       íѺº¡á¬«óδ⌐  ñÑß∩-     π¬áºáΓѽ∞ ¡á unsigned
  1470.                       Γ¿τ¡δ⌐  µÑ½δ⌐          int.
  1471.                                         
  1472.               U       íѺº¡á¬«óδ⌐  ñÑß∩-     π¬áºáΓѽ∞ ¡á unsigned
  1473.                       Γ¿τ¡δ⌐  µÑ½δ⌐          long.
  1474.                                         
  1475.  
  1476.                                       - 199 -
  1477.          
  1478.          
  1479.               e       º¡áτÑ¡¿Ñ ß  »½áóá-     π¬áºáΓѽ∞ ¡á  float
  1480.               f       εΘÑ⌐  Γ«τ¬«⌐,  ß«-
  1481.                       ñÑαªáΘÑÑ  ¡Ñ«í∩ºá-
  1482.                       Γѽ∞¡δ⌐ º¡á¬ ("+",
  1483.                       "-"),   «ñ¡π   ¿½¿
  1484.                       í«½∞ΦÑ  ñÑß∩Γ¿τ¡πε
  1485.                       µ¿Σαπ, «íδτ¡«  ß«-
  1486.                       ñÑαªáΘπε  ñÑß∩Γ¿τ-
  1487.                       ¡πε Γ«τ¬π ¿ φ¬ß»«-
  1488.                       ¡Ñ¡Γπ ("Ñ", "à"),
  1489.                       ¬«Γ«αá∩    ºá»¿ßδ-
  1490.                       óáÑΓß∩ ºá º¡á¬«óδ¼
  1491.                       µÑ½δ¼   º¡áτÑ¡¿Ñ¼.
  1492.                                         
  1493.               c       ß¿¼ó«½∞¡δ⌐. æ¿¼ó«-     π¬áºáΓѽ∞ ¡á  char
  1494.                       ½δ »α«íѽá,  Γáíπ-
  1495.                       ½∩µ¿¿   ¿½¿  ¡«ó«⌐
  1496.                       ßΓ᫬¿, Γᬠ ¡áºδ-
  1497.                       óáѼδÑ "»α«íѽ∞¡δÑ
  1498.                       ß¿¼ó«½δ",  ¬«Γ«αδÑ
  1499.                       «íδτ¡«  »α«»π߬áεΓ-
  1500.                       ß∩,  »α¿   ºáñá¡¿¿
  1501.                       φΓ«ú« Γ¿»á  ßτ¿Γδ-
  1502.                       óáεΓß∩. ä½∩ ßτ¿Γδ-
  1503.                       óá¡¿∩   ß½ÑñπεΘÑú«
  1504.                       ß¿¼ó«½á, ¡Ñ ∩ó½∩ε-
  1505.                       ΘÑú«ß∩   "»α«íѽ∞-
  1506.                       ¡δ¼", ¿ß»«½∞ºπÑΓß∩
  1507.                       ¬«¼í¿¡áµ¿∩ %1s.
  1508.             
  1509.               s       ßΓ᫬«óδ⌐.             π¬áºáΓѽ∞ ¡á ß¿¼ó«½∞-
  1510.                                              ¡δ⌐ ¼áßß¿ó, ñ«ßΓáΓ«τ-
  1511.                                              ¡« í«½∞Φ«⌐ ñ½∩ óó«ñ¿-
  1512.                                              ¼«ú«  »«½∩  ó¼ÑßΓÑ ß
  1513.                                              ¡π½Ñóδ¼     ß¿¼ó«½«¼
  1514.                                              «¬«¡τá¡¿∩ '\0',  »«-
  1515.                                              ∩ó½∩εΘ¿¼ß∩ áóΓ«¼áΓ¿-
  1516.                                              τÑ߬¿.
  1517.             
  1518.               n       τΓÑ¡¿Ñ  »α¿  óó«ñÑ     π¬áºáΓѽ∞ ¡á  int, ó
  1519.                       ¿º   stream    ¿½¿     ¬«Γ«α«¼ ºá»¿ßδóáÑΓß∩
  1520.                       íπΣÑαá  ¡Ñ  »α«¿ß-     τ¿ß½«  πß»ÑΦ¡«  ßτ¿-
  1521.                       σ«ñ¿Γ.                 Γá¡¡δσ  ß¿¼ó«½«ó  ¿º
  1522.                                              »«Γ«¬á  ¿½¿  íπΣÑαá,
  1523.                                              ó»½«Γ∞ ñ«  π¬áºá¡¡δσ
  1524.                                              ó ó맮óÑ scanf.
  1525.                                               
  1526.               p       º¡áτÑ¡¿Ñ ó   Σ«α¼Ñ     π¬áºáΓѽ∞   ¡á  far-
  1527.                       xxxx : yyyy,   úñÑ     úαπ»»π ñá¡¡δσ.
  1528.                       µ¿Σαδ x ¿ y  ∩ó½∩-
  1529.                       εΓß∩  ΦÑßΓ¡áñµáΓÑ-
  1530.                       α¿τ¡δ¼¿    µ¿ΣαἿ
  1531.                       óÑασ¡Ñú« αÑú¿ßΓαá.
  1532.  
  1533.             
  1534.  
  1535.                                       - 200 -
  1536.          
  1537.          
  1538.                Åα¿  τΓÑ¡¿¿  ßΓ᫬, ¡Ñ «úαá¡¿τÑ¡¡δσ ß¿¼ó«½á¼¿ »α«íѽá, ¼¡«-
  1539.          ªÑßΓó« ß¿¼ó«½«ó ó ¬óáñαáΓ¡δσ ß¬«í¬áσ [] ñ«½ª¡« ºá¼Ñ¡∩Γ∞ß∩ ßΓ᫬«-
  1540.          óδ¼ Γ¿»«¼ s. æ««ΓóÑΓßΓóπεΘÑÑ »«½Ñ óó«ñá τ¿ΓáÑΓß∩ ó»½«Γ∞ ñ« »Ñαó«-
  1541.          ú« ß¿¼ó«½á, ¡Ñ ß«ñÑαªáΘÑú«ß∩ ó «úαá¡¿τÑ¡¡«¼ ¬óáñαáΓ¡δ¼¿  ß¬«í¬á¼¿
  1542.          ¼¡«ªÑßΓóÑ ß¿¼ó«½«ó. àß½¿ ó φΓ«¼ ¼¡«ªÑßΓóÑ »Ñαóδ¼ ß¿¼ó«½«¼ ∩ó½∩ÑΓ-
  1543.          ß∩  caret  (^),  αѺπ½∞ΓáΓ ß«σαá¡∩ÑΓß∩: »«½Ñ óó«ñá ßτ¿ΓδóáÑΓß∩ ñ«
  1544.          »Ñαó«ú« ß¿¼ó«½á, ¡Ñ óσ«ñ∩ΘÑú« ó φΓ« ¼¡«ªÑßΓó« ß¿¼ó«½«ó. ùΓ«íδ ºá-
  1545.          »«¼¡¿Γ∞ ßΓ᫬π íѺ ¡π½Ñó«ú« ß¿¼ó«½á '\0', »α¿¼Ñ¡∩ÑΓß∩  ß»Ñµ¿Σ¿¬á-
  1546.          µ¿∩ %nc, úñÑ n - ñÑß∩Γ¿τ¡«Ñ µÑ½«Ñ. é φΓ«¼ ß½πτáÑ ß¿¼ó«½∞¡δ⌐ Γ¿» s
  1547.          «»αÑñѽ∩ÑΓ  áαúπ¼Ñ¡Γ,  ¬«Γ«αδ⌐ π¬áºδóáÑΓ ¡á ¼áßß¿ó ß¿¼ó«½«ó. æ½Ñ-
  1548.          ñπεΘ¿Ñ  n  ß¿¼ó«½«ó ßτ¿ΓδóáεΓß∩ ¿º óσ«ñ¡«ú« »«Γ«¬á ó «»αÑñѽѡ¡«Ñ
  1549.          ¼ÑßΓ«»«½«ªÑ¡¿Ñ  ¿ ¡π½Ñó«⌐ ß¿¼ó«½ ¡Ñ ºá»¿ßδóáÑΓß∩.
  1550.                öπ¡¬µ¿∩ scanf ñ½∩ ¬áªñ«ú« »«½∩ óó«ñᠠ߬᡿απÑΓ  ß¿¼ó«½  ºá
  1551.          ß¿¼ó«½«¼.  Ä¡á ¼«ªÑΓ «¬«¡τ¿Γ∞ τΓÑ¡¿Ñ «Γñѽ∞¡«ú« »«½∩ »α¿ ñ«ßΓ¿ªÑ-
  1552.          ¡¿¿ ß¿¼ó«½á »α«íѽá, Ñß½¿ ½¿í« ñ«ßΓ¿ú¡πΓ« »«½Ñ width; ½¿í« ß½Ññπ-
  1553.          εΘ¿⌐ óó«ñ¿¼δ⌐ ß¿¼ó«½ ¡Ñ ¼«ªÑΓ íδΓ∞ »αÑ«íαẫóá¡ »« ºáñá¡¡«¼π Σ«α-
  1554.          ¼áΓπ; ½¿í« ß½ÑñπεΘ¿⌐ ß¿¼ó«½  ¬«¡Σ½¿¬ΓπÑΓ  ß  ß««ΓóÑΓßΓóπεΘ¿¼  Ñ¼π
  1555.          ß¿¼ó«½«¼  ó  π»αáó½∩εΘÑ⌐ ßΓα«¬Ñ Σ«α¼áΓá; ½¿í« ªÑ ß½ÑñπεΘ¿⌐ ß¿¼ó«½
  1556.          «ΓßπΓßΓóπÑΓ ó óδíαá¡¡«¼ ¼¡«ªÑßΓóÑ ß¿¼ó«½«ó. è«úñá »α«¿ßσ«ñ¿Γ  óδ-
  1557.          ¡πªñÑ¡¡δ⌐  »α«µÑßß  «¬«¡τá¡¿∩ ßτ¿Γδóá¡¿∩, Γ« ß½ÑñπεΘÑÑ »«½Ñ óó«ñá
  1558.          αáßß¼áΓα¿óáÑΓß∩ ß ßἫú«  »Ñαó«ú«  ¬«¡Σ½¿¬ΓπεΘÑú«  ß¿¼ó«½á.  ¥Γ«Γ
  1559.          ß¿¼ó«½, Ñß½¿ «¡ «ñ¿¡, αáßß¼áΓα¿óáÑΓß∩ ¬á¬ ¡Ñ»α«τ¿Γá¡¡δ⌐, ½¿í« ¬á¬
  1560.          »Ñαóδ⌐  ß¿¼ó«½  ß½ÑñπεΘÑú«  »«½∩  óó«ñá, ½¿í« ¬á¬ »Ñαóδ⌐ ß¿¼ó«½ ó
  1561.          »«ß½ÑñπεΘ¿σ «»Ñαᵿ∩σ τΓÑ¡¿∩ »«Γ«¬á stdin.
  1562.             
  1563.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1564.             
  1565.                ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ τ¿ß½« πß»ÑΦ¡« »αÑ«íαẫóá¡¡δσ ¿ ¡áº-
  1566.          ¡áτÑ¡¡δσ »«½Ñ⌐. é ó«ºóαáΘáѼ«¼ º¡áτÑ¡¿¿ ¡Ñ ß«ñÑনΓß∩ τ¿ß½«  »α«-
  1567.          τ¿Γá¡¡δσ   ¡«  ¡Ñ ¡áº¡áτÑ¡¡δσ »«½Ñ⌐. Åα¿ »«»δΓ¬Ñ ßτ¿Γδóá¡¿∩ ¬«¡µá
  1568.          Σá⌐½á ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ EOF. é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ 0 π¬áºδóá-
  1569.          ÑΓ, τΓ« ¡ÑΓ ¡áº¡áτÑ¡¡δσ »«½Ñ⌐.
  1570.                æ¼.  ΓᬪѠ fscanf,  printf,  sscanf,  vfprintf,   vprintf,
  1571.          vsprintf.
  1572.             
  1573.                Åα¿¼Ñα 1.
  1574.             
  1575.             #include <stdio.h>
  1576.             
  1577.             int i;
  1578.             float fp;
  1579.             char c, s[81];
  1580.             
  1581.             scanf("%d  %f  %c  %s", &i, &fp, &c, s);
  1582.             /* óó«ñ αẽ¿τ¡δσ ñá¡¡δσ */.
  1583.             
  1584.             Åα¿¼Ñα 2.
  1585.             
  1586.             #include <stdio.h>
  1587.             
  1588.             main ()          /* »αÑ«íαẫóá¡¿Ñ ΦÑßΓ¡áñµáΓÑα¿τ¡«ú«
  1589.                              ** ¿½¿  ó«ß∞¼Ñα¿τ¡«ú«   µÑ½«ú«     ¬
  1590.                              ** ñÑß∩Γ¿τ¡«¼π µÑ½«¼π  */
  1591.             {
  1592.             int numassigned, val;
  1593.  
  1594.                                       - 201 -
  1595.          
  1596.          
  1597.             
  1598.             pintf("Enter hexadecimal or octal #, or 00
  1599.                    to guit:\n");
  1600.             do
  1601.                {  printf("# = ");
  1602.                   numassigned = scanf("%i", &val);
  1603.                   printf("Decimal # = %i\n", nal);
  1604.                }
  1605.             while (val && numassigned);
  1606.       
  1607.                /*  ¬«¡Ñµ  µ¿¬½á,  Ñß½¿  º¡áτÑ¡¿Ñ  óó«ñá αáó¡« 00, ¿½¿ Ñß½¿
  1608.          scanf ¡Ñ ß»«ß«í¡á ¡áº¡áτ¿Γ∞ »«½Ñ */.
  1609.             
  1610.             }
  1611.  
  1612.                Æ«úñá ¡á óδσ«ñÑ íπñÑΓ ß½ÑñπεΘÑÑ.
  1613.             
  1614.             Enter hexadecimal or octal #, or 00 to guit:
  1615.                 
  1616.             # = 0xf
  1617.             Decimal # = 15
  1618.                 
  1619.             # = 0100
  1620.                 
  1621.             Decimal # = 64
  1622.                 
  1623.             # = 00
  1624.                 
  1625.             Decimal # = 0.
  1626.             
  1627.            
  1628.             
  1629.                SEGREAD
  1630.            
  1631.             #include <dos.h>
  1632.             
  1633.             void segread (segregs);
  1634.             struct SREGS *segregs;    º¡áτÑ¡¿∩ αÑú¿ßΓα«ó ßÑú¼Ñ¡Γá
  1635.             
  1636.                Ä»¿ßá¡¿Ñ.
  1637.             
  1638.                öπ¡¬µ¿∩  segread  ºá»«½¡∩ÑΓ ßΓαπ¬Γπαπ, ¡á ¬«Γ«απε π¬áºδóáÑΓ
  1639.          segregs, ΓѬπΘ¿¼ ß«ñÑন¼δ¼ αÑú¿ßΓα«ó ßÑú¼Ñ¡Γá. ¥Γá Σπ¡¬µ¿∩ ¼«ªÑΓ
  1640.          ¿ß»«½∞º«óáΓ∞ß∩ ó¼ÑßΓÑ ß Σπ¡¬µ¿∩¼¿ intdosx ¿ int86, τΓ«íδ  ó«ßßΓá-
  1641.          ¡áó½¿óáΓ∞ º¡áτÑ¡¿∩ αÑú¿ßΓα«ó ßÑú¼Ñ¡Γ«ó, ¿ß»«½∞ºπѼδσ »«ß½Ññ¡¿¼¿.
  1642.             
  1643.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1644.             
  1645.                é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  1646.                æ¼.ΓᬪѠintdosx, int86x, FP_SEG.
  1647.             
  1648.                Åα¿¼Ñα:
  1649.             
  1650.             #include <dos.h>
  1651.             
  1652.  
  1653.                                       - 202 -
  1654.          
  1655.          
  1656.             struct SREGS segregs;
  1657.             unsigned int cs, ds, es, ss;
  1658.             
  1659.                /* ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ºáñáεΓ  ΓѬπΘ¿Ñ  º¡áτÑ¡¿∩  αÑú¿ßΓα«ó
  1660.          ßÑú¼Ñ¡Γá */
  1661.             
  1662.             segread(&segregs);
  1663.             cs=segregs.cs;
  1664.             ds=segregs.ds;
  1665.             es=segregs.es;
  1666.             ss=segregs.ss;
  1667.            
  1668.            
  1669.             
  1670.             SETBUF
  1671.  
  1672.             #include <stdio.h>
  1673.             
  1674.             void setbuf(stream, buffer);
  1675.             FILE *stream;        π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE
  1676.             char *buffer;        íπΣÑα, αẼÑΘáѼδ⌐ »«½∞º«óáΓѽѼ.
  1677.             
  1678.                Ä»¿ßá¡¿Ñ.
  1679.             
  1680.                öπ¡¬µ¿∩ setbuf »«ºó«½∩ÑΓ »«½∞º«óáΓѽε π»αáó½∩Γ∞ íπΣÑα¿ºáµ¿-
  1681.          Ñ⌐  »«Γ«¬á  stream.  Çαúπ¼Ñ¡Γ  stream ¼«ªÑΓ ßßδ½áΓ∞ß∩ ¡á «Γ¬αδΓδ⌐
  1682.          Σá⌐½. àß½¿ áαúπ¼Ñ¡Γ buffer ∩ó½∩ÑΓß∩ NULL, Γ« stream ¡Ñ  íπΣÑਧ«-
  1683.          óá¡¡δ⌐;  Ñß½¿  »«Γ«¬ íπΣÑਧ«óá¡¡δ⌐, Γ« buffer ¼«ªÑΓ π¬áºδóáΓ∞ ¡á
  1684.          ¼áßß¿ó ß¿¼ó«½«ó  αẼÑα«¼ BUFSIZ, úñÑ αẼÑα BUFSIZ  «»αÑñѽѡ  ó
  1685.          <stdio.h>. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ íπΣÑα buffer ñ½∩ íπΣÑ-
  1686.          α¿ºáµ¿¿  óó«ñá/óδó«ñá  ó¼ÑßΓ«  íπΣÑαá,  αẼÑΘáѼ«ú«  ß¿ßΓѼ«⌐ »«
  1687.          π¼«½τá¡¿ε ñ½∩ »«Γ«¬á stream.
  1688.                æΓá¡ñáαΓ¡δÑ »«Γ«¬¿ stderr ¿ stdaux »« π¼«½τá¡¿ε ∩ó½∩εΓß∩ ¡Ñ
  1689.          íπΣÑਧ«óá¡¡δ¼¿, ¡« »α¿ ¿ß»«½∞º«óá¡¿¿ Σπ¡¬µ¿¿ setbuf   «¡¿  ¼«úπΓ
  1690.          ¡áº¡áτáΓ∞ íπΣÑαδ.
  1691.             
  1692.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1693.             
  1694.                ô φΓ«⌐ Σπ¡¬µ¿¿ ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  1695.                æ¼. ΓᬪѠfflush, fopen, fclose.
  1696.             
  1697.                Åα¿¼Ñα:
  1698.             
  1699.             #include <stdio.h>
  1700.             
  1701.             char buf[BUFSIZ];
  1702.             FILE *stream1, stream2;
  1703.             
  1704.             stream1 = fopen("data1", "r");
  1705.             stream2 = fopen("data2", "w");
  1706.             
  1707.             setbuf(stream, buf);
  1708.          /* stream1 ¿ß»«½∞ºπÑΓ íπΣÑα, ¡áº¡áτÑ¡¡δ⌐ »«½∞º«óáΓѽѼ */
  1709.             setbuf(stream, NULL);
  1710.          /* stream2 ∩ó½∩ÑΓß∩ ¡ÑíπΣÑਧ«óá¡¡δ¼ */.
  1711.  
  1712.                                       - 203 -
  1713.          
  1714.          
  1715.            
  1716.            
  1717.             
  1718.                SETJMP
  1719.             
  1720.             #include<setjmp.h>
  1721.             
  1722.             int setjmp(env);
  1723.             jmp_buf env;                   »ÑαѼѡ¡á∩, ó  ¬«Γ«α«⌐
  1724.                                            σαá¡¿Γß∩ «¬απªÑ¡¿Ñ.
  1725.             
  1726.                Ä»¿ßá¡¿Ñ.
  1727.             
  1728.                öπ¡¬µ¿∩  setjmp  ß«σαá¡∩ÑΓ  ß«ßΓ«∩¡¿Ñ  ßΓѬá, ¬«Γ«αδ⌐ ¼«ªÑΓ
  1729.          íδΓ∞ »«ß½Ññ«óáΓѽ∞¡« ó«ßßΓá¡«ó½Ñ¡ »«ßαÑñßΓó«¼ ¿ß»«½∞º«óá¡¿∩ Σπ¡¬-
  1730.          µ¿¿ longjmp.
  1731.                öπ¡¬µ¿¿ setjmp ¿ longjmp «íÑß»Ñτ¿óáεΓ ó«º¼«ª¡«ßΓ∞  óδ»«½¡Ñ-
  1732.          ¡¿∩  ¡Ñ½«¬á½∞¡«ú«  (nonlocal)  »ÑαÑσ«ñá ¿ «íδτ¡« ¿ß»«½∞ºπεΓß∩ ñ½∩
  1733.          »ÑαÑñáτ¿ π»αáó½Ñ¡¿∩ ¬ «íαáí«Γ¬Ñ «Φ¿í«¬  ñ½∩ ó«ßßΓá¡«ó½Ñ¡¿∩ ¬«ñá ó
  1734.          αá¡ÑÑ óδºóá¡¡«⌐ »α«µÑñπαÑ (íѺ  ¿ß»«½∞º«óá¡¿∩  «íδτ¡«ú«  ó맮óá),
  1735.          ñ½∩ ó«ºóαáΓá πß½«ó¡δσ «í«º¡áτÑ¡¿⌐. é맮ó setjmp á¬Γ¿ó¿º¿απÑΓ ß«σ-
  1736.          αá¡Ñ¡¿Ñ ΓѬπΘÑú« ß«ßΓ«∩¡¿∩ ßΓѬá ó env. Å«ß½ÑñπεΘ¿⌐ ó맮ó longjmp
  1737.          ó«ßßΓá¡áó½¿óáÑΓ  ß«σαá¡Ñ¡¡«Ñ ß«ßΓ«∩¡¿Ñ ¿ ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ ¡á
  1738.          π¬áºáΓѽ∞ (Γ«τ¬π óσ«ñá), ¡Ñ»«ßαÑñßΓóÑ¡¡« ß½ÑñπεΘ¿⌐ ºá  ß««ΓóÑΓßΓ-
  1739.          óπεΘ¿¼ óδº«ó«¼ setjmp. è«úñá óδºδóáÑΓß∩ Σπ¡¬µ¿∩ longjmp, º¡áτÑ¡¿∩
  1740.          óßÑσ  »ÑαѼѡ¡δσ  (ºá ¿ß¬½ετÑ¡¿Ñ¼ »ÑαѼѡ¡δσ αÑú¿ßΓαá) ßΓá¡«ó∩Γß∩
  1741.          ñ«ßΓπ»¡δ¼¿ ñ½∩ »α«µÑñπαδ, ¬«Γ«αá∩ »α¿¡¿¼áÑΓ π»αáó½Ñ¡¿Ñ ¿ ß«ñÑনΓ
  1742.          º¡áτÑ¡¿∩ φΓ¿σ »ÑαѼѡ¡δσ. ç¡áτÑ¡¿∩ »ÑαѼѡ¡δσ αÑú¿ßΓαá ¡Ñ»αÑñ߬á-
  1743.          ºπѼδ.
  1744.             
  1745.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1746.             
  1747.                Å«ß½Ñ ß«σαá¡Ñ¡¿∩ ß«ßΓ«∩¡¿∩ ßΓѬá Σπ¡¬µ¿∩ setjmp  ó«ºóαáΘáÑΓ
  1748.          º¡áτÑ¡¿Ñ 0. àß½¿ ó αѺπ½∞ΓáΓÑ ó맮óá longjmp ó«ºóαáΘáÑΓß∩ setjmp,
  1749.          Γ«úñá ó«ºóαáΘáÑΓß∩ ¿ º¡áτÑ¡¿Ñ value áαúπ¼Ñ¡Γá longjmp. é«ºóαáΘáÑ-
  1750.          ¼«ú« º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  1751.                æ¼. ΓᬪѠlongjmp.
  1752.             
  1753.                çá¼Ñτá¡¿Ñ. Å«ß½Ñ óδ»«½¡Ñ¡¿∩ longjmp º¡áτÑ¡¿∩ »ÑαѼѡ¡δσ αÑ-
  1754.          ú¿ßΓαá ó »α«µÑñπαÑ, óδºδóáεΘÑ⌐ setjmp, ¡Ñ ¼«úπΓ íδΓ∞ ó«ßßΓá¡«ó½Ñ-
  1755.          ¡δ (ó«ºóαáΘÑ¡δ) ¬ ß«íßΓóÑ¡¡δ¼ º¡áτÑ¡¿∩¼.
  1756.        
  1757.             
  1758.                Åα¿¼Ñα:
  1759.             
  1760.             #include <stdio.h>
  1761.             #include <setjmp.h>
  1762.             
  1763.             jmp_buf mark;
  1764.             
  1765.             main()
  1766.                  {
  1767.                  if (setjmp(mark) != 0)
  1768.            
  1769.                  {   printf("longjmp has been called\n");
  1770.  
  1771.                                       - 204 -
  1772.          
  1773.          
  1774.                      recover();
  1775.                      exit(1);
  1776.                   }
  1777.                  printf("setjmp has been called\n");
  1778.                  .
  1779.                  .
  1780.                  .
  1781.                  p();
  1782.                  .
  1783.                  .
  1784.                  .
  1785.                  }
  1786.                 
  1787.             
  1788.                 p()
  1789.                 {
  1790.       
  1791.                 int error = 0;
  1792.                 .
  1793.                 .
  1794.                 .
  1795.                 if (error != 0)
  1796.                    longjmp(mark, -1);
  1797.                 .
  1798.                 .
  1799.                 .
  1800.                 }
  1801.             
  1802.                 recover()
  1803.                 {
  1804.             
  1805.                /*  »α¿  óδσ«ñÑ ¿º »α«úαá¼¼δ πíÑñ¿ΓÑß∞, τΓ« Σá⌐½δ ñá¡¡δσ ¡Ñ
  1806.          íπñπΓ ºá»«ατÑ¡δ */
  1807.             
  1808.                 .
  1809.                 .
  1810.                 .
  1811.                 }.
  1812.            
  1813.            
  1814.             
  1815.             
  1816.                SETMODE
  1817.             
  1818.             #include <fcntl.h>
  1819.             #include <io.h>    ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
  1820.                                Σπ¡¬µ¿¿
  1821.             
  1822.             int setmode(handle,mode);
  1823.             int handle;        Σá⌐½«óδ⌐ handle
  1824.             int mode;          ¡«óδ⌐ αѪ¿¼ »αÑ«íαẫóá¡¿∩
  1825.             
  1826.                Ä»¿ßá¡¿Ñ.
  1827.             
  1828.                öπ¡¬µ¿∩ setmode πßΓá¡áó½¿óáÑΓ ó mode  αѪ¿¼  »αÑ«íαẫóá¡¿∩
  1829.  
  1830.                                       - 205 -
  1831.          
  1832.          
  1833.          Σá⌐½á, ºáñá¡¡«ú« »« handle.
  1834.                Mode ¼«ªÑΓ íδΓ∞ «ñ¡«⌐ ¿º ß½ÑñπεΘ¿σ ¬«¡ßΓá¡Γ.
  1835.  
  1836.          Manifest-¬«¡ßΓá¡Γá                àÑ º¡áτÑ¡¿Ñ
  1837.            
  1838.           O_TEXT           ôßΓá¡áó½¿óáÑΓß∩  ΓѬßΓ«óδ⌐  αѪ¿¼  »αÑ-
  1839.                            «íαẫóá¡¿∩. è«¼í¿¡áµ¿∩ "髺óαáΓ ¬áαÑΓ-
  1840.                            ¬¿ - ÅÑαÑó«ñ ßΓ᫬¿"  »αÑ«íαáºπÑΓß∩  ¡á
  1841.                            óσ«ñÑ ¬ «ñ¡«¼π ß¿¼ó«½π "ÅÑαÑó«ñ ßΓ᫬¿"
  1842.                            (Åæ). æ¿¼ó«½ Åæ ¡á óδó«ñÑ »αÑ«íαáºπÑΓß∩
  1843.                            ó ¬«¼í¿¡áµ¿ε "髺óαáΓ ¬áαÑΓ¬¿ - ÅÑαÑó«ñ
  1844.                            ßΓ᫬¿".
  1845.                            
  1846.          O_BINARY          ôßΓá¡áó½¿óáÑΓß∩  ñó«¿τ¡δ⌐  αѪ¿¼.   éßÑ
  1847.                            óδΦÑ»α¿óÑñÑ¡¡δÑ »αÑ«íαẫóá¡¿∩  ¡Ñ »«ñ-
  1848.                            ñÑনóáεΓß∩.
  1849.  
  1850.                öπ¡¬µ¿∩  setmode «íδτ¡« ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¼«ñ¿Σ¿¬áµ¿¿ αѪ¿¼á
  1851.          »αÑ«íαẫóá¡¿∩, πßΓá¡áó½¿óáѼ«ú« »« π¼«½τá¡¿ε, ñ½∩ stdin, stdout,
  1852.          stderr, stdaux, stdprn, ¡« ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ½εí«ú« Σá⌐½á.
  1853.             
  1854.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1855.             
  1856.                é ß½πτáÑ óÑα¡«⌐ πßΓᡫ󬿠Σπ¡¬µ¿∩ setmode ó«ºóαáΘáÑΓ »αÑñδ-
  1857.          ñπΘ¿⌐ αѪ¿¼ »αÑ«íαẫóá¡¿∩. é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 π¬áºδóáÑΓ ¡á
  1858.          «Φ¿í¬π  ¿ errno πßΓá¡áó½¿óáÑΓß∩ ó «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
  1859.             
  1860.             
  1861.           ç¡áτÑ¡¿Ñ                      àú« ß¼δß½
  1862.             
  1863.           EBADF                ìÑóÑα¡δ⌐ Σá⌐½«óδ⌐ handle.
  1864.  
  1865.           EINVAL               ìÑóÑα¡δ⌐ áαúπ¼Ñ¡Γ mode. (ì¿ O_TEXT,  ¡¿
  1866.                                O_BINARY).
  1867.  
  1868.                æ¼.ΓᬪѠcreate, fopen, open.
  1869.            
  1870.             
  1871.                Åα¿¼Ñα:
  1872.                 
  1873.             #include <stdio.h>
  1874.             #include <fcntl.h>
  1875.             #include <io.h>
  1876.             
  1877.             int result;
  1878.             
  1879.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α πßΓá¡áó½¿óáÑΓ stdin ó αѪ¿¼  »αÑ«íαá-
  1880.          º«óá¡¿∩ binary (»Ñαó«¡áτá½∞¡« «¡ íδ½ text) */
  1881.             
  1882.             result = setmode(fileno(stdin), O_BINARY);
  1883.            
  1884.            
  1885.             
  1886.             
  1887.  
  1888.                                       - 206 -
  1889.                
  1890.                SETVBUF
  1891.          
  1892.          
  1893.             #include <stdio.h>
  1894.             
  1895.             int setvbuf(stream, buf, type, size);
  1896.            
  1897.             FILE *stream;      π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE
  1898.             char *buf;         íπΣÑα, ¡áº¡áτÑ¡¡δ⌐ »«½∞º«óáΓѽѼ.
  1899.             int type           Γ¿» íπΣÑαá:
  1900.                                    _IONBF - ¡ÑΓ íπΣÑαá;
  1901.                                    _IOFBF - »«½¡á∩ íπΣÑα¿ºáµ¿∩;
  1902.                                    _IOLBF - ßΓ᫬«óá∩ íπΣÑα¿ºáµ¿∩.
  1903.             int size;          αẼÑα íπΣÑαá.
  1904.             
  1905.                Ä»¿ßá¡¿Ñ.
  1906.             
  1907.                öπ¡¬µ¿∩  setvbuf »«ºó«½∩ÑΓ »«½∞º«óáΓѽε π»αáó½∩Γ∞ íπΣÑਧá-
  1908.          µ¿Ñ⌐ ¿ αẼÑα«¼ íπΣÑαá ñ½∩ »«Γ«¬á stream. Stream ¼«ªÑΓ  ßßδ½áΓ∞ß∩
  1909.          ¡á  «Γ¬αδΓδ⌐ Σá⌐½. îáßß¿ó, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ buf, ¿ß»«½∞ºπÑΓß∩
  1910.          ¬á¬ íπΣÑα, Ñß½¿ «¡ ¡Ñ ∩ó½∩ÑΓß∩ NULL, Γ.Ñ. »«Γ«¬ ¡Ñ ∩ó½∩ÑΓß∩ íπΣÑ-
  1911.          α¿º«óá¡¡δ¼. àß½¿ »«Γ«¬ íπΣÑਧ«óá¡¡δ⌐, ¿ß»«½∞ºπÑΓß∩ Γ¿»,  «»αÑñÑ-
  1912.          ½Ñ¡¡δ⌐ »« type; φΓ«Γ Γ¿» ¼«ªÑΓ íδΓ∞ ½¿í« _IONBF, ½¿í« _IOFBF, ½¿-
  1913.          í«  _IOLBF. àß½¿ ¿ß»«½∞ºπÑΓß∩ Γ¿» _IOFBF, αẼÑα íπΣÑαá «»αÑñѽ∩-
  1914.          ÑΓß∩ »« size; Ñß½¿ ¿ß»«½∞ºπÑΓß∩ Γ¿» _IOLBF ¿½¿ _IONBF, »«Γ«¬  ∩ó-
  1915.          ½∩ÑΓß∩ ¡ÑíπΣÑਧ«óá¡¡δ¼, á size ¿ buf ¿ú¡«α¿απεΓß∩.
  1916.             
  1917.             çìÇùàìêà ÆêÅÇ              àâÄ æî¢æï
  1918.             
  1919.             _IONBF             üπΣÑα ¡Ñ ¿ß»«½∞ºπÑΓß∩, ¡Ñß¼«Γα∩  ¡á
  1920.                                »α¿ßπΓßΓó¿Ñ size ¿ buf
  1921.             
  1922.             _IOFBF             Å«½¡á∩ íπΣÑα¿ºáµ¿∩, Ñß½¿ buf ¡Ñ ∩ó-
  1923.                                ½∩ÑΓß∩  NULL;  »«φΓ«¼π  buf ¿ß»«½∞-
  1924.                                ºπÑΓß∩ ó ¬áτÑßΓóÑ íπΣÑαá, á  size -
  1925.                                Ñú« αẼÑαá
  1926.             
  1927.             _IOLBF             Ç¡á½«ú¿τ¡« _IOFBF
  1928.             
  1929.                êßΓ¿¡¡«Ñ  º¡áτÑ¡¿Ñ  size  «íδτ¡« í«½∞ΦÑ 0, ¡« ¼Ñ¡∞ΦÑ ¼á¬ß¿-
  1930.          ¼á½∞¡«ú« µÑ½«ú« αẼÑαá.
  1931.             
  1932.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1933.             
  1934.                ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¡Ñ¡π½Ñó«Ñ  º¡áτÑ¡¿Ñ,  Ñß½¿  Γ¿»  ¿½¿
  1935.          αẼÑα íπΣÑαá ¡Ñ»αáó¿½∞¡« «»αÑñѽѡ, ¿ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 0, Ñß-
  1936.          ½¿ óßÑ «»αÑñѽѡ« óÑα¡«.
  1937.                æ¼. ΓᬪѠsetbuf, fflush, fopen, fclose.
  1938.             
  1939.            
  1940.                Åα¿¼Ñα:
  1941.             
  1942.             #include <stdio.h>
  1943.             
  1944.             char buf[1024];
  1945.            
  1946.             FILE *stream1, *stream2;
  1947.             
  1948.  
  1949.                                       - 207 -
  1950.          
  1951.          
  1952.             main()
  1953.             
  1954.             {
  1955.             stream1 = fopen("data1", "r");
  1956.             stream2 = fopen("data2", "w");
  1957.             
  1958.                /*  Stream1  íπñÑΓ ¿ß»«½∞º«óáΓ∞ íπΣÑα αẼÑα«¼ 1024 íá⌐Γá ¿
  1959.          ¡áº¡áτÑ¡¡δ⌐ »«½∞º«óáΓѽѼ, á stream2 ∩ó½∩ÑΓß∩ ¡ÑíπΣÑਧ«óá¡¡δ¼ */
  1960.             
  1961.             if (setvbuf(stream1, buf, _IOFBF, sizeof(buf)) !=0)
  1962.                   printf("Incorrect type or size of buffer1\n");
  1963.             if (setvbuf(stream2, _IONBF, 0) != 0)
  1964.                   printf("Incorrect type or size of buffer2\n");
  1965.             }.
  1966.            
  1967.            
  1968.                SIGNAL
  1969.             
  1970.             #include <signal.h>
  1971.             
  1972.             int (*signal(sig, func)();
  1973.             int sig;                           º¡áτÑ¡¿Ñ ß¿ú¡á½á
  1974.             int (*func)();                     óδ»«½¡∩Ѽá∩ Σπ¡¬µ¿∩
  1975.             
  1976.                Ä»¿ßá¡¿Ñ.
  1977.             
  1978.                öπ¡¬µ¿∩ signal »«ºó«½∩ÑΓ óδíαáΓ∞  ¿º  «»Ñαᵿ«¡¡«⌐  ß¿ßΓѼδ
  1979.          «ñ¿¡  ¿º ΓαÑσ ß»«ß«í«ó «íαáí«Γ¬¿ ß¿ú¡á½á »αÑαδóá¡¿∩. Çαúπ¼Ñ¡Γ sig
  1980.          ¼«ªÑΓ íδΓ∞ «ñ¡«⌐ ¿º ¼á¡¿ΣÑßΓ¡δ󠬫¡ßΓá¡Γ SIGINT ¿½¿ SIGFPE, «»αÑ-
  1981.          ñѽѡδσ ó <signal.h>. îá¡¿ΣÑßΓ¡á∩ ¬«¡ßΓá¡Γá SIGINT  ß««ΓóÑΓßΓóπÑΓ
  1982.          ó  MS DOS ß¿ú¡á½π »αÑαδóá¡¿∩ INT 23H. SIGFPE ß««ΓóÑΓßΓóπÑΓ »αÑαδ-
  1983.          óá¡¿∩¼ »½áóáεΘÑ⌐ Γ«τ¬¿, ¬«Γ«αδÑ ¡Ñ ¼á߬¿α«óá¡δ, ΓᬿѠ ¬á¬  »ÑαÑ-
  1984.          »«½¡Ñ¡¿Ñ, ñѽѡ¿Ñ ¡á ¡«½∞, ¡ÑóÑα¡á∩ «»Ñαᵿ∩. Çαúπ¼Ñ¡Γ func ¼«ªÑΓ
  1985.          íδΓ∞ «ñ¡«⌐ ¿º ¼á¡¿ΣÑßΓ¡δ󠬫¡ßΓá¡Γ SIG_DFL ¿½¿ SIG_IGN (ΓᬪѠ«»-
  1986.          αÑñѽѡ¡δσ ó <signal.h>), ¿½¿ áñαÑß«¼ Σπ¡¬µ¿¿. Åα¿ »«½πτÑ¡¿¿ ß¿ú-
  1987.          ¡á½á  »αÑαδóá¡¿∩  »α¿¡¿¼áѼ«Ñ ñÑ⌐ßΓó¿Ñ ºáó¿ß¿Γ «Γ º¡áτÑ¡¿∩ func ¿
  1988.          ∩ó½∩ÑΓß∩ ß½ÑñπεΘ¿¼:
  1989.             
  1990.          çìÇùàìêà                           àâÄ æî¢æï
  1991.             
  1992.          SIG_IGN           æ¿ú¡á½   »αÑαδóá¡¿∩  ¿ú¡«α¿απÑΓß∩.  ¥Γ«
  1993.                            º¡áτÑ¡¿Ñ ñ½∩ SIGFPE ¡Ñ ºáñáÑΓß∩,   Γ.¬.
  1994.                            ß«ßΓ«∩¡¿Ñ  »α«µÑßßá  ß »½áóáεΘÑ⌐ Γ«τ¬«⌐
  1995.                            «ßΓáÑΓß∩ ¡Ñ«»αÑñѽѡ¡δ¼.
  1996.                            
  1997.          SIG_DFL           éδºóá¡¡δ⌐ »α«µÑßß ºáóÑαΦÑ¡;  π»αáó½Ñ¡¿Ñ
  1998.                            »ÑαÑñáÑΓß∩   ¡á  πα«óÑ¡∞ ¬«¼á¡ñ MS DOS.
  1999.                            éßÑ Σá⌐½δ, «Γ¬αδΓδÑ ó »α«µÑßßÑ,  ºá¬αδ-
  2000.                            óáεΓß∩, ¡« íπΣÑαδ ¡Ñ «í¡«ó½∩εΓß∩.
  2001.                            
  2002.          ÇñαÑß Σπ¡¬µ¿¿     ä½∩ ß¿ú¡á½«ó SIGINT Σπ¡¬µ¿¿, ¡á ¬«Γ«απε
  2003.                            π¬áºδóáÑΓ func,  »ÑαÑñáÑΓß∩    áαúπ¼Ñ¡Γ
  2004.                            SIGINT ¿ «¡á óδ»«½¡∩ÑΓß∩. àß½¿  Σπ¡¬µ¿∩
  2005.                            ºáóÑαΦáÑΓß∩ ¡«α¼á½∞¡«, »αÑαóá¡¡δ⌐  »α«-
  2006.                            µÑßß ó«º«í¡«ó½∩ÑΓ óδ»«½¡Ñ¡¿Ñ ß ¬«¼á¡ñδ,
  2007.  
  2008.                                       - 208 -
  2009.          
  2010.          
  2011.                            ß½ÑñπεΘÑ⌐ ºá Γ«⌐, ó ¬«Γ«α«⌐ íδ½ »«½πτÑ¡
  2012.                            ß¿ú¡á½  »αÑαδóá¡¿∩.  ÅÑαÑñ  óδ»«½¡Ñ¡¿Ñ¼
  2013.                            ß»Ñµ¿Σ¿µ¿α«óá¡¡«⌐ Σπ¡¬µ¿¿ º¡áτÑ¡¿Ñ func
  2014.                            πßΓá¡áó½¿óáÑΓß∩  ó  SIG_DFL;  ß½ÑñπεΘ¿⌐
  2015.                            ß¿ú¡á½ »αÑαδóá¡¿∩ Γαá¬ΓπÑΓß∩ ¬á¬ ¿  ñ½∩
  2016.                            SIG_DFL,  Ñß½¿  ó¡ÑΦ¡¿⌐  ó맮ó  signal,
  2017.                            ºáñáεΘ¿⌐ ñαπú«Ñ º¡áτÑ¡¿Ñ »αÑαδóá¡¿∩, ¡Ñ
  2018.                            «»αÑñѽѡ.  ¥Γ«  »«ºó«½∩ÑΓ »«½∞º«óáΓѽε
  2019.                            »ÑαÑπßΓá¡áó½¿óáΓ∞ ß¿ú¡á½δ  ó óδºδóáѼδσ
  2020.                            Σπ¡¬µ¿∩σ, Ñß½¿ ¡Ñ«íσ«ñ¿¼«. ä½∩   SIGFPE
  2021.                            Σπ¡¬µ¿µ,   ¡á  ¬«Γ«απε  π¬áºδóáÑΓ func,
  2022.                            »ÑαÑñáεΓß∩ ñóá áαúπ¼Ñ¡Γá - SIGFPE ¿ µÑ-
  2023.                            ½δ⌐ »«ñ¬«ñ «Φ¿í¬¿,  FPE-xxx-,  ¿  ºáΓѼ
  2024.                            «¡á óδ»«½¡∩ÑΓß∩. (漫Γα¿ΓÑ include-Σá⌐½
  2025.                            <float.h>   ñ½∩   «»αÑñѽѡ¿∩  »«ñ¬«ñ«ó
  2026.                            FPE-xxx.)     ç¡áτÑ¡¿Ñ     func      ¡Ñ
  2027.                            »ÑαÑπßΓá¡«ó¿Γß∩  ñ«  ΓÑσ  »«α,  »«¬á ¡Ñ
  2028.                            íπñÑΓ  »«½πτÑ¡  ß¿ú¡á½ »αÑαδóá¡¿∩;  ñ½∩
  2029.                            óδσ«ñá  ¿º  ß«ßΓ«∩¡¿∩  »½áóáεΘÑ⌐  Γ«τ¬¿
  2030.                            ¿ß»«½∞ºπÑΓß∩  setjmp  ó¼ÑßΓÑ  ß longjmp
  2031.                            (ß¼. »α¿¼Ñα  ñ½∩ Σπ¡¬µ¿¿_fprset).  àß½¿
  2032.                            Σπ¡¬µ¿∩ ºáóÑαΦáÑΓß∩ ¡«α¼á½∞¡«, »αÑαóá¡-
  2033.                            ¡δ⌐    »α«µÑßß     ó«º«í¡«ó½∩ÑΓß∩     ó
  2034.                            ¡Ñ«»αÑñѽѡ¡«¼    ß«ßΓ«∩¡¿¿   »½áóáεΘÑ⌐
  2035.                            Γ«τ¬¿.
  2036.                            
  2037.                            
  2038.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  2039.             
  2040.                öπ¡¬µ¿∩ signal ó«ºóαáΘáÑΓ »αÑñδñπΘÑÑ º¡áτÑ¡¿Ñ func. é«ºóαá-
  2041.          ΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ ¿ errno πßΓá¡áó½¿óá-
  2042.          ÑΓß∩ ó EINVAL, «»αÑñѽ∩∩ ¡ÑóÑα¡«Ñ º¡áτÑ¡¿Ñ sig.
  2043.                æ¼.ΓᬪѠabort, exit,  _exit,  _fpreset,  spawnl,  spawnle,
  2044.          spawnlp, spawnv, spawnve, spawnvp.
  2045.             
  2046.                çá¼Ñτá¡¿Ñ: é ΓÑσ child-»α«µÑßßáσ, ¬«Γ«αδÑ ß«ºñá¡δ »«ßαÑñßΓ-
  2047.          ó«¼  ó맮óá »α«µÑñπα exec ¿½¿ spawn, πßΓá¡«ó½Ñ¡¡δÑ ß¿ú¡á½δ »αÑαδ-
  2048.          óá¡¿⌐ ¡Ñ ß«σαá¡∩εΓß∩. ¥Γ¿ ß¿ú¡á½δ ó child-»α«µÑßßÑ »ÑαÑπßΓá¡áó½¿-
  2049.          óáεΓß∩ »« π¼«½τá¡¿ε.
  2050.       
  2051.                Åα¿¼Ñα:
  2052.             
  2053.             #include <stdio.h>
  2054.             #include <signal.h>
  2055.             #include <stdlib.h>
  2056.             #include <process.h>
  2057.             int handler();
  2058.             
  2059.             main()
  2060.                   {
  2061.                   if(signal(SIGINT, handler)==(int(*)())-1) {
  2062.                       fprintf(stderr,"couldn't set SIGINT\n");
  2063.                       abort();
  2064.                       }
  2065.                       .
  2066.  
  2067.                                       - 209 -
  2068.          
  2069.          
  2070.                       .
  2071.                       .
  2072.                   }
  2073.             
  2074.             int handler()
  2075.                   {
  2076.                   char ch;
  2077.                   printf("terminate processing? ");
  2078.            
  2079.                   scanf("%1c", &ch);
  2080.                   if (ch=='y' ::ch=='Y')
  2081.                         exit(0);
  2082.                   signal(SIGINT, handler);
  2083.                   }
  2084.             
  2085.                /* Σπ¡¬µ¿∩ signal, óδºóá¡¡á∩ ºñÑß∞ ñ½∩  ß½ÑñπεΘÑú«  ß¿ú¡á½á
  2086.          »αÑαδóá¡¿⌐, »«ßδ½áÑΓ π»αáó½Ñ¡¿Ñ ¡Ñ ó Äæ, á ¬ handler() */
  2087.             
  2088.            
  2089.             
  2090.                SIN-SINH
  2091.             
  2092.             #include <math.h>
  2093.             
  2094.             double sin(x);         óδτ¿ß½∩ÑΓ ß¿¡πß x
  2095.             double sinh(x);        óδτ¿ß½∩ÑΓ ú¿»Ñαí«½¿τÑ߬¿⌐ ß¿¡πß
  2096.                                    x
  2097.             double x;              αáñ¿á¡
  2098.             
  2099.                Ä»¿ßá¡¿Ñ.
  2100.             
  2101.                öπ¡¬µ¿¿  sin ¿ sinh óδτ¿ß½∩εΓ ß««ΓóÑΓßΓóÑ¡¡« ß¿¡πß ¿ ú¿»Ñα-
  2102.          í«½¿τÑ߬¿⌐ ß¿¡πß x.
  2103.             
  2104.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  2105.             
  2106.                öπ¡¬µ¿∩ sin ó«ºóαáΘáÑΓ ß¿¡πß x. àß½¿ x  í«½∞Φ«⌐,  Γ«  ¼«ªÑΓ
  2107.          ó«º¡¿¬¡πΓ∞  τáßΓ¿τ¡á∩ »«ΓÑα∩ º¡áτ¿¼«ßΓ¿ αѺπ½∞ΓáΓá. é φΓ«¼ ß½πτáÑ
  2108.          sin óδαáíáΓδóáÑΓ «Φ¿í¬π PLOSS, ¡« ß««íΘÑ¡¿∩ ¡Ñ »ÑτáΓáÑΓ.  àß½¿  x
  2109.          ¡áßΓ«½∞¬« í«½∞Φ«⌐, τΓ« ΓÑα∩ÑΓß∩ «íΘá∩ º¡áτ¿¼«ßΓ∞ αѺπ½∞ΓáΓá, Γ«ú-
  2110.          ñá  sin  »ÑτáΓáÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ TLOSS ó stderr ¿ ó«ºóαáΘáÑΓ
  2111.          0. é «í«¿σ ß½πτá∩σ errno πßΓá¡áó½¿óáÑΓß∩ ó ERANGE.
  2112.                öπ¡¬µ¿∩ sinh ó«ºóαáΘáÑΓ ú¿»Ñαí«½¿τÑ߬¿⌐ ß¿¡πß x.  àß½¿  αÑ-
  2113.          ºπ½∞ΓáΓ í«½∞Φ«⌐, sinh ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ HUGE («Γα¿µáΓѽ∞¡«Ñ ¿½¿
  2114.          »«½«ª¿Γѽ∞¡«Ñ, ó ºáó¿ß¿¼«ßΓ¿ «Γ º¡á¬á x)  ¿ πßΓá¡áó½¿óáÑΓ errno ó
  2115.          ERANGE.
  2116.                Äíαaí«Γ¬a  «Φ¿í«¬  ¼«ªÑΓ  íδΓ∞ ¼«ñ¿Σ¿µ¿α«óa¡a »α¿ ¿º¼Ñ¡Ñ¡¿¿
  2117.          »α«µÑñπαδ matherr.
  2118.                æ¼.ΓᬪѠacos, asin, atan, atan2, cos, cosh, tan, tanh.
  2119.             
  2120.                Åα¿¼Ñα:
  2121.             
  2122.             #include <math.h>
  2123.             
  2124.             double pi = 3.1415926535,x,y;
  2125.  
  2126.                                       - 210 -
  2127.          
  2128.          
  2129.             
  2130.             x = pi/2;);
  2131.             y = sin(x);  /* y αáóÑ¡ 1.0 */
  2132.             
  2133.             y = sinh(x); /* y αáóÑ¡ 2.3 */
  2134.            
  2135.            
  2136.  
  2137.                SOPEN
  2138.             
  2139.             #include <fentl.h>
  2140.             #include <sys\types.h>
  2141.             #include <sys\stat.h>
  2142.             #include <sharc.h>
  2143.             #include <io.h>        ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
  2144.                                    Σπ¡¬µ¿¿
  2145.             
  2146.             int sopen(pathname,oflag,shflag{,pmode]);
  2147.             char *pathname;        path-¿¼∩  Σá⌐½á
  2148.             int oflag;             Γ¿» αáºαÑΦÑ¡¡δσ «»Ñαᵿ⌐
  2149.             int shflag;            αáºαÑΦÑ¡¡δ⌐ Γ¿» αáºñѽѡ¿∩
  2150.             int pmode;             αáºαÑΦÑ¡¡δ⌐ Γ¿» ñ«ßΓπ»á
  2151.             
  2152.                Ä»¿ßá¡¿Ñ.
  2153.             
  2154.                öπ¡¬µ¿∩ sopen «Γ¬αδóáÑΓ Σá⌐½,  ºáñá¡¡δ⌐  »«  path-¿¼Ñ¡¿,  ¿
  2155.          »«ñú«Γáó½¿óáÑΓ Ñú« ¬ »«ß½ÑñπεΘѼπ αáºñѽѡ¡«¼π τΓÑ¡¿ε ¿½¿ ºá»¿ß¿,
  2156.          τΓ« «»αÑñѽ∩ÑΓß∩ º¡áτÑ¡¿Ñ¼ oflag ¿½¿ shflag. Oflag ∩ó½∩ÑΓß∩ µÑ½δ¼
  2157.          óδαáªÑ¡¿Ñ¼,  ß«ßΓ«∩Θ¿¼ ¿º ¬«¼í¿¡áµ¿¿ «ñ¡«⌐ ¿½¿ ¡Ñ߬«½∞¬¿σ ß½Ññπε-
  2158.          Θ¿σ ¼á¡¿ΣÑßΓ¡δ󠬫¡ßΓá¡Γ, «íΩ∩ó½Ñ¡¡δσ ó <fcntl.h>.  è«úñá  ºáñá¡á
  2159.          í«½ÑÑ  τѼ «ñ¡á ¼á¡¿ΣÑßΓ¡á∩ ¬«¡ßΓá¡Γá, Γ«úñá «¡¿ «íΩÑñ¿¡∩εΓß∩ »α¿
  2160.          »«¼«Θ¿ «»ÑαáΓ«αá êïê(:).
  2161.  
  2162.             OFLAG                          çìÇùàìêà
  2163.                             
  2164.             O_APPEND        ÅÑαÑñ   ¬áªñ«⌐    «»ÑαᵿÑ⌐     ºá»¿ß¿
  2165.                             »ÑαѼÑΘáÑΓ π¬áºáΓÑ∞  ¡á  Σá⌐½  ó ¬«¡Ñµ
  2166.                             Σá⌐½á.
  2167.                             
  2168.             O_CREAT         ì«óδ⌐ Σá⌐½ ß«ºñá¡ ¿ «Γ¬αδΓ ñ½∩ ºá»¿ß¿;
  2169.                             φΓ«  ¡Ñ  φΣΣÑ¬Γ¿ó¡«,  Ñß½¿  ßπΘÑßΓóπÑΓ
  2170.                             Σá⌐½, «»αÑñѽ∩Ѽδ⌐ »« path-¿¼Ñ¡¿.
  2171.                             
  2172.             O_EXCL          é«ºóαáΘáÑΓß∩  º¡áτÑ¡¿Ñ  «Φ¿í¬¿,   Ñß½¿
  2173.                             ßπΘÑßΓóπÑΓ Σá⌐½, «»αÑñѽ∩Ѽδ⌐ »« path-
  2174.                             ¿¼Ñ¡¿. êß»«½∞ºπÑΓß∩ ó¼ÑßΓÑ ß O_CREATE.
  2175.  
  2176.             O_RDONLY        öá⌐½  «Γ¬αδΓ  Γ«½∞¬«  ñ½∩ τΓÑ¡¿∩, Ñß½¿
  2177.                             ºáñá¡ φëàӽáú, ΓᬪѠ¼«ªÑΓ íδΓ∞  óδ-
  2178.                             íαá¡ Σ½áú O_RDWR ¿½¿ O_WRONLY.
  2179.                             
  2180.             O_RDWR          öá⌐½ «Γ¬αδΓ «ñ¡«óαѼѡ¡« ñ½∩ τΓÑ¡¿∩  ¿
  2181.                             ºá»¿ß¿; Ñß½¿  ºáñáÑΓß∩  φëà Σ½áú, Γ«
  2182.                             ¼«ªÑΓ íδΓ∞ óδíαá¡ Σ½áú  O_RDONLY   ¿½¿
  2183.                             O_WRONLY.
  2184.  
  2185.                                       - 211 -
  2186.          
  2187.          
  2188.                             
  2189.             O_TRUNC         æπΘÑßΓóπεΘ¿⌐  Σá⌐½  «Γ¬αδΓ  ¿ πßÑτÑ¡ ¬
  2190.                             ñ½¿¡Ñ 0; φëàΣá⌐½ ñ«½ªÑ¡ ¿¼ÑΓ∞ αáºαÑ-
  2191.                             ΦÑ¡¿Ñ  ¡á  ºá»¿ß∞.   æ«ñÑন¼«Ñ  Σá⌐½á
  2192.                             π¡¿τΓ«ªáÑΓß∩.
  2193.            
  2194.             O_WRONLY        öá⌐½  «Γ¬αδΓ  Γ«½∞¬«  ñ½∩ τΓÑ¡¿∩; Ñß½¿
  2195.                             ºáñá¡ φëà Σ½áú,  ñ«½ªÑ¡  íδΓ∞  ºáñá¡
  2196.                             Σ½áú O_RDONLY ¿½¿ O_RDWR.
  2197.                             
  2198.             O_BINARY        öá⌐½ «Γ¬αδΓ ó ñó«¿τ¡«¼  (¡Ñ Γαá¡ß½¿α«-
  2199.                             óá¡¡«¼) αѪ¿¼Ñ.  (æ¼. «»¿ßá¡¿Ñ  ñó«¿τ-
  2200.                             ¡«ú« αѪ¿¼á π Σπ¡¬µ¿¿  fopen).
  2201.                             
  2202.             O_TEXT          öá⌐½ «Γ¬αδΓ ó ΓѬßΓ«ó«¼ (Γαá¡ß½¿α«óá¡-
  2203.                             ¡«¼) αѪ¿¼Ñ.   (æ¼.  «»¿ßá¡¿Ñ  ΓѬßΓ«-
  2204.                             ó«ú« αѪ¿¼á π Σπ¡¬µ¿¿ fopen).
  2205.             
  2206.                çá¼Ñτá¡¿Ñ:  O_TRUNC »«½¡«ßΓ∞ε π¡¿τΓ«ªáÑΓ ß«ñÑন¼«Ñ ßπΘÑßΓ-
  2207.          óπεΘÑú« Σá⌐½á, »«φΓ«¼π ¡πª¡« ó¡¿¼áΓѽ∞¡« ¿ß»«½∞º«óáΓ∞  φΓπ  ¬«¡ß-
  2208.          Γá¡Γπ.
  2209.                Çαúπ¼Ñ¡Γ  shflag ∩ó½∩ÑΓß∩ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼, ß«ßΓ«∩Θ¿¼
  2210.          ¿º ß½ÑñπεΘ¿σ ¼á¡¿ΣÑßΓ¡δ󠬫¡ßΓá¡Γ, «íΩ∩ó½Ñ¡¡δσ ó <share.h>.  Å«ñ-
  2211.          α«í¡«  ¿¡Σ«α¼áµ¿∩  « αѪ¿¼Ñ αáºñѽѡ¿∩ »α¿óÑñÑ¡á ó απ¬«ó«ñßΓóÑ »«
  2212.          MS DOS.
  2213.       
  2214.             shflag                          ç¡áτÑ¡¿Ñ
  2215.             
  2216.            SH_COMPAT        πßΓá¡áó½¿óáÑΓß∩ αѪ¿¼ ß«ó¼ÑßΓ¿¼«ßΓ¿
  2217.             
  2218.            SH_DENYRW        ñ«ßΓπ» »« τΓÑ¡¿ε  ¿ ºá»¿ß¿ ó Σá⌐½Ñ  ¡Ñ
  2219.                             αáºαÑΦÑ¡
  2220.       
  2221.            SH_DENYWR        ñ«ßΓπ» »« ºá»¿ß¿ ó Σá⌐½Ñ ¡Ñ αáºαÑΦÑ¡
  2222.             
  2223.            SH_DENYRD        ñ«ßΓπ» »« τΓÑ¡¿ε ó Σá⌐½Ñ ¡Ñ αáºαÑΦÑ¡
  2224.             
  2225.            SH_DENYNO        ñ«ßΓπ» »« τΓÑ¡¿ε ¿ ºá»¿ß¿ αáºαÑΦÑ¡
  2226.             
  2227.             
  2228.                Çαúπ¼Ñ¡Γ pmode ΓαÑíπÑΓß∩  Γ«½∞¬«  Γ«úñá,  ¬«úñá  «»αÑñѽѡá
  2229.          ¬«¡ßΓá¡Γá 0_CREAT. àß½¿ Σá⌐½ ¡Ñ ßπΘÑßΓóπÑΓ, pmode ΓᬪѠ«»αÑñѽ∩-
  2230.          ÑΓ  Γ¿»δ ñ«ßΓπ»á ñ½∩ Σá⌐½á, ¬«Γ«αδÑ πßΓá¡áó½¿óáεΓß∩ ó« óαѼ∩ »Ñα-
  2231.          ó«ú« ºá¬αδΓ¿∩ ¡«ó«ú« Σá⌐½á. é »α«Γ¿ó¡«¼ ß½πτáÑ áαúπ¼Ñ¡Γ pmode ¿ú-
  2232.          ¡«α¿απÑΓß∩. Çαúπ¼Ñ¡Γ pmode ∩ó½∩ÑΓß∩ µÑ½δ¼ óδαáªÑ¡¿Ñ¼,  ß«ñÑαªáΘ¿¼
  2233.          «ñ¡π  ¿½¿  í«½∞ΦÑ ¼á¡¿ΣÑßΓ¡δ󠬫¡ßΓá¡Γ S_IWRITE ¿ S_IREAD, «íΩ∩ó-
  2234.          ½Ñ¡¡δσ ó <sys\stat.h>. è«úñá ºáñáεΓß∩ «íÑ ¬«¡ßΓá¡Γδ, «¡¿ «íΩÑñ¿¡∩-
  2235.          εΓß∩ «»ÑαáΓ«α«¼ êïê(!). ç¡áτÑ¡¿Ñ áαúπ¼Ñ¡Γá pmode »α¿óÑñÑ¡« ¡¿ªÑ.
  2236.             
  2237.             èÄìæÆÇìÆÇ            àà æî¢æïÄéÄà çìÇùàìêà
  2238.             
  2239.             S_IWRITE             αáºαÑΦáÑΓ ºá»¿ß∞
  2240.             
  2241.             S_IREAD              αáºαÑΦáÑΓ τΓÑ¡¿Ñ
  2242.  
  2243.  
  2244.                                       - 212 -
  2245.          
  2246.          
  2247.             S_IREAD:S_IWRITE     αáºαÑΦáεΓ τΓÑ¡¿Ñ ¿ ºá»¿ß∞
  2248.  
  2249.                àß½¿ ºá»¿ß∞ ¡Ñ αáºαÑΦÑ¡á, Σá⌐½ »αÑñ¡áº¡áτÑ¡ Γ«½∞¬« ñ½∩ τΓÑ-
  2250.          ¡¿∩.  é MS DOS óßÑ Σá⌐½δ «Γ¬αδΓδ ñ½∩ τΓÑ¡¿∩, αáºαÑΦÑ¡¿Ñ »« ºá»¿ß¿
  2251.          ¡Ñ ºáñáÑΓß∩. Å«φΓ«¼π ¼«ñѽ¿ S_IWRITE ¿ S_IREAD: S_IWRITE ∩ó½∩εΓß∩
  2252.          φ¬ó¿óá½Ñ¡Γ¡δ¼¿.
  2253.                ÅÑαÑñ  πßΓá¡«ó¬«⌐ αáºαÑΦÑ¡¿∩ Σπ¡¬µ¿∩ sopen »α¿¬½áñδóáÑΓ ΓÑ-
  2254.          ¬πΘπε ¼á߬π Σá⌐½á ¬ pmode (ß¼. umask).
  2255.             
  2256.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  2257.             
  2258.                öπ¡¬µ¿∩ sopen ó«ºóαáΘáÑΓ handle-α ¡á «Γ¬αδΓδ⌐ Σá⌐½. é«ºóαá-
  2259.          ΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 π¬áºδóáÑΓ ¡á «Φ¿í¬π; errno  πßΓá¡áó½¿óáÑΓß∩  ó
  2260.          «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
  2261.             
  2262.             çìÇùàìêà                àâÄ æî¢æï
  2263.       
  2264.             EACCES         çáñá¡¡«Ñ path-¿¼∩ ∩ó½∩ÑΓß∩ ñ¿αÑ¬Γ«α¿Ñ¼
  2265.                            ¿½¿ ßñѽá¡á »«»δΓ¬á  ºá»¿ßáΓ∞  ó  Σá⌐½,
  2266.                            «Γ¬αδΓδ⌐   Γ«½∞¬«   ñ½∩   τΓÑ¡¿∩,   ¿½¿
  2267.                            ó«º¡¿¬½« ¡áαπΦÑ¡¿Ñ ó αѪ¿¼Ñ αáºñѽѡ¿∩.
  2268.                            (éÑαß¿¿ MS DOS 3.0 ¿ ßΓáαΦÑ).
  2269.             
  2270.             EINVAL         è«¼á¡ñ¡δ⌐ Σá⌐½ SHARE.COM ¡Ñ ¿¡ßΓ«½½¿α«-
  2271.                            óá¡.
  2272.             
  2273.             EEXIST         ö½áú¿ O_CREAT ¿ O_EXCL  «»αÑñѽѡδ,  ¡«
  2274.                            ¡áºóá¡¡δ⌐ Σá⌐½ óßÑúñá ßπΘÑßΓóπÑΓ.
  2275.                            
  2276.             EMFILE         äαπú¿Ñ handle-αδ  Σá⌐½á  ¡Ñ   ñ«ßΓπ»¡δ,
  2277.                            Γ.¬. ¼¡«ú« «Γ¬αδΓδσ Σá⌐½«ó.
  2278.                            
  2279.             ENOENT         öá⌐½ ¿½¿ path-¿¼∩ ¡Ñ ¡á⌐ñÑ¡«.
  2280.  
  2281.                æ¼.ΓᬪѠclose, create, fopen, open, umask.
  2282.             
  2283.                çá¼Ñτá¡¿Ñ:  öπ¡¬µ¿∩ sopen ¿ß»«½∞ºπÑΓß∩ ó óÑαß¿∩σ 3.0 MS DOS
  2284.          ¿ ßΓáαΦ¿σ. é αá¡¡¿σ óÑαß¿∩σ MS DOS áαúπ¼Ñ¡Γ shflag ¿ú¡«α¿απÑΓß∩.
  2285.                ÉѪ¿¼δ αáºñѽѡ¿∩ Σá⌐½«ó αáí«ΓáεΓ ¡ÑóÑα¡« ß íπΣÑਧ«óá¡¡δ¼¿
  2286.          Σá⌐½á¼¿, »«φΓ«¼π fdopen ¡Ñ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ßó∩º¿ »«Γ«¬á ¿ Σá⌐½á,
  2287.          «Γ¬αδΓ«ú« ¬ αáºñѽѡ¿ε ¿½¿ ºá¬αδΓ¿ε.
  2288.             
  2289.                Åα¿¼Ñα:
  2290.             
  2291.             #include <fcntl.h>
  2292.             #include<sys\types.h>
  2293.             #include<sys\stat.h>
  2294.             #include<share.h>
  2295.             #include<io.h>
  2296.             
  2297.             extern unsigned char _osmajor;
  2298.             int fh;
  2299.             
  2300.                 
  2301.                /* ÅÑαÑñ óδº«ó«¼ sopen ¿ß»«½∞ºπÑΓß∩ »ÑαѼѡ¡á∩ _osmajor ñ½∩
  2302.  
  2303.                                       - 213 -
  2304.          
  2305.          
  2306.          »α«óÑન ¡«¼Ñαá óÑαß¿¿ MS DOS . */.
  2307.            
  2308.             if (_osmajor >=3)
  2309.                fh = sopen ("data", O_RDWR:O_BINARY, SH_DENYRW);
  2310.             
  2311.             else
  2312.                fh = open ("data", O_RDWR: O_BINARY);
  2313.  
  2314.  
  2315.                SPAWNL-SPAWNVPE
  2316.             
  2317.                #include <stdio.h>
  2318.                #include <process.h>
  2319.             
  2320.          int spawnl(modeflag,pathname,arg0,arg1...,argn,NULL);
  2321.          int spawnle(modeflag,pathname,arg0,arg1...,argn,NULL,envp);
  2322.          int spawnlp(modeflag,pathname,arg0,arg1...,argn,NULL);
  2323.          int spawnlpe(modeflag,pathname,arg0,arg1...,argn,NULL,envp);
  2324.          int spawnv(modeflag,pathname,argv);
  2325.          int spawnve(modeflag,pathname,argv,envp);
  2326.          int spawnvp(modeflag,pathname,argv);
  2327.          int spawnvpe(modeflag,pathname,argv,envp);
  2328.             
  2329.          int modeflag;               αѪ¿¼ óδ»«½¡Ñ¡¿∩ parent-»α«µÑßßá
  2330.          char *pathname;             path-¿¼∩ óδ»«½¡∩Ѽ«ú« Σá⌐½á
  2331.          char *arg0,*arg1...,*argn;  ß»¿ß«¬ π¬áºáΓѽÑ⌐ ¡á áαúπ¼Ñ¡Γδ
  2332.          char *argv[];               ¼áßß¿ó π¬áºáΓѽÑ⌐ ¡á áαúπ¼Ñ¡Γδ
  2333.          char *envp[];               ¼áßß¿ó π¬áºáΓѽÑ⌐ ¡á πßΓá¡«ó½Ñ¡-
  2334.                                      ¡«Ñ «¬απªÑ¡¿Ñ
  2335.                                 
  2336.                Ä»¿ßá¡¿Ñ.
  2337.                                  
  2338.                öπ¡¬µ¿¿  spawn ß«ºñáεΓ ¿ óδ»«½¡∩εΓ ¡«óδ⌐ child-»α«µÑßß. ä½∩
  2339.          ºáúαπº¬¿ ¿ óδ»«½¡Ñ¡¿∩ child-»α«µÑßßá ñ«½ª¡« íδΓ∞ ñ«ßΓπ»¡«  ñ«ßΓá-
  2340.          Γ«τ¡«  »á¼∩Γ¿.  Çαúπ¼Ñ¡Γ modeflag «»αÑñѽ∩ÑΓ ñÑ⌐ßΓó¿∩, óδí¿αáѼδÑ
  2341.          parent-»α«µÑßß«¼ »ÑαÑñ ¿ ¡á »α«Γ∩ªÑ¡¿¿ spawn. æ½ÑñπεΘ¿Ñ  º¡áτÑ¡¿∩
  2342.          modeflag «íΩ∩ó½Ñ¡δ ó <process.h>
  2343.                            
  2344.          ç¡áτÑ¡¿Ñ                        àú« ß¼δß½
  2345.                            
  2346.          P_WAIT               Åα¿«ßΓá¡áó½¿óáÑΓ  parent-»α«µÑßß,  »«¬á
  2347.                               ¡Ñ ºáóÑαΦ¿Γß∩ child-»α«µÑßß.
  2348.                            
  2349.          P_NOWAIT             Åα«ñ«½ªáÑΓ  óδ»«½¡Ñ¡¿Ñ  parent-»α«µÑßßá,
  2350.                               »áαώѽ∞¡«ú« ß child-»α«µÑßß«¼.
  2351.           
  2352.          P_OVERLAY            Parent-»α«µÑßß  »ÑαѬαδóáÑΓß∩ ß  child-
  2353.                               »α«µÑßß«¼; parent-»α«µÑßß  π¡¿τΓ«ªáÑΓß∩
  2354.                               (Γ« ªÑ ñÑ⌐ßΓó¿Ñ, τΓ« ¿ »α¿ ó맮óáσ exec)
  2355.             
  2356.                î«úπΓ  ¿ß»«½∞º«óáΓ∞ß∩  Γ«½∞¬«  º¡áτÑ¡¿∩ modeflag, ΓᬿѠ¬á¬
  2357.          P_WAIT ¿ P_OVERLAY. ç¡áτÑ¡¿Ñ P_NOWAIT ß«σαá¡∩ÑΓß∩  ñ½∩  ó«º¼«ª¡«⌐
  2358.          íπñπΘÑ⌐ αÑ὿ºáµ¿¿. àß½¿ ¿ß»«½∞ºπÑΓß∩ P_NOWAIT, ó«ºóαáΘáÑΓß∩ º¡á-
  2359.          τÑ¡¿Ñ  «Φ¿í¬¿. Çαúπ¼Ñ¡Γ pathname «»αÑñѽ∩ÑΓ Σá⌐½, óδ»«½¡∩Ѽδ⌐ ¬á¬
  2360.          child-»α«µÑßß. Pathname ¼«ªÑΓ «»αÑñѽ∩Γ∞ »«½¡δ⌐ path (¿º  ¬«α¡∩),
  2361.          τáßΓ∞ path (¿º ΓѬπΘÑú« αáí«τÑú« ñ¿αÑ¬Γ«α¿∩), ¿½¿ »α«ßΓ« ¿¼∩ Σá⌐-
  2362.          ½á.
  2363.  
  2364.  
  2365.  
  2366.