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

  1.                                       - 94 -
  2.                                             
  3.             
  4.                FABS
  5.             
  6.                #include <math.h>
  7.             
  8.                double fabs(x);
  9.                double x;                    º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐
  10.             
  11.                Ä»¿ßá¡¿Ñ:
  12.             
  13.                öπ¡¬µ¿∩ fabs ó«ºóαáΘáÑΓ áíß«½εΓ¡«Ñ º¡áτÑ¡¿Ñ ßó«Ñú« áαúπ¼Ñ¡-
  14.          Γá ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
  15.             
  16.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  17.             
  18.                öπ¡¬µ¿∩ fabs ó«ºóαáΘáÑΓ áíß«½εΓ¡«Ñ º¡áτÑ¡¿Ñ ßó«Ñú« áαúπ¼Ñ¡-
  19.          Γá. é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  20.                æ¼.ΓᬪѠabs, cabs, labs.
  21.             
  22.                Åα¿¼Ñα:
  23.             
  24.                #include <math.h>
  25.             
  26.                double x,y;
  27.                .
  28.                .
  29.                .
  30.                y = fabs(x);.
  31.       
  32.  
  33.                FCLOSE-FCLOSEALL
  34.             
  35.                #include <stdio.h>
  36.                int fclose(stream);          ºá¬αδóáÑΓ «Γ¬αδΓδ⌐ »«Γ«¬.
  37.                FILE *stream;                π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  38.                int fcloseall();             ºá¬αδóáÑΓ óßÑ «Γ¬αδΓδÑ »«Γ«¬¿.
  39.             
  40.                Ä»¿ßá¡¿Ñ.
  41.             
  42.                öπ¡¬µ¿¿  fclose, fcloseall ºá¬αδóáεΓ ß««ΓóÑΓßΓóÑ¡¡« »«Γ«¬ ¿
  43.          »«Γ«¬¿. ÅÑαÑñ ºá¬αδΓ¿Ñ¼ óßÑ íπΣÑαδ, ßó∩ºá¡¡δÑ ß »«Γ«¬á¼¿,  «í¡«ó-
  44.          ½∩εΓß∩.  Åα¿  ºá¬αδΓ¿¿ »«Γ«¬á íπΣÑαδ, ºáσóáτÑ¡¡δÑ ß¿ßΓѼ«⌐, «ßó«-
  45.          í«ªñáεΓß∩. üπΣÑαδ, «»αÑñѽѡ¡δÑ Σπ¡¬µ¿Ñ⌐ setbuf, áóΓ«¼áΓ¿τÑ߬¿ ¡Ñ
  46.          «ßó«í«ªñáεΓß∩ .
  47.                öπ¡¬µ¿∩ fclose ºá¬αδóáÑΓ  ºáñá¡¡δ⌐  »«Γ«¬  stream.  öπ¡¬µ¿∩
  48.          fcloseall  ºá¬αδóáÑΓ  óßÑ  «Γ¬αδΓδÑ »«Γ«¬¿  ºá ¿ß¬½ετÑ¡¿Ñ¼ stdin,
  49.          stdout, stderr, stdaux, stdprn.
  50.             
  51.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  52.             
  53.                öπ¡¬µ¿∩ fclose ó«ºóαáΘáÑΓ 0, Ñß½¿ »«Γ«¬ πñáτ¡« ºá¬αδΓ. öπ¡-
  54.          ¬µ¿∩ fcloseall ó«ºóαáΘáÑΓ «íΘÑÑ τ¿ß½« ºá¬αδΓδσ »«Γ«¬«ó. é  ß½πτáÑ
  55.          «Φ¿í¬¿ «íÑ Σπ¡¬µ¿¿ ó«ºóαáΘáεΓ º¡áτÑ¡¿Ñ EOF.
  56.                æ¼. ΓᬪѠΣπ¡¬µ¿¿ close, fdopen, fflush, fopen, freopen.
  57.             
  58.  
  59.                                       - 95 -
  60.          
  61.          
  62.                Åα¿¼Ñα:
  63.             
  64.                #include <stdio.h>
  65.                FILE *stream;
  66.                int numclosed;
  67.                stream=fopen("data", "r");
  68.                .
  69.                .
  70.                .
  71.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ºá¬α«ÑΓ »«Γ«¬ */
  72.                fclose (stream);
  73.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ºá¬αδóáÑΓ óßÑ »«Γ«¬¿, ºá ¿ß¬½ετÑ¡¿Ñ¼
  74.                stdin, stdout, stderr, stdaux, stdprn */
  75.                numclosed=fcloseall();
  76.       
  77.       
  78.                FCVT
  79.                
  80.                #include <stdlib.h>          ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩  «íΩ∩ó½Ñ-
  81.                                             ¡¿∩ Σπ¡¬-
  82.                                             µ¿¿.
  83.                char fcvt (value, ndec, decptr, signptr);
  84.                double value;                »αÑ«íαáºπѼ«Ñ τ¿ß½«.
  85.                int ndec;                    ¬«½¿τÑßΓó« µ¿Σα »«ß½Ñ ñÑß∩Γ¿τ-
  86.                                             ¡«⌐ Γ«τ¬¿.
  87.                int *decptr;                 π¬áºáΓѽ∞ ¡á ºá»«¼¡Ñ¡¡πε »«º¿-
  88.                                             µ¿ε ñÑß∩Γ¿τ¡«⌐ Γ«τ¬¿.
  89.                int *signptr;                π¬áºáΓѽ∞ ¡á ºá»«¼¡Ñ¡¡δ⌐ ¿¡ñ¿-
  90.                                             ¬áΓ«α º¡á¬á.
  91.                
  92.                Ä»¿ßá¡¿Ñ:
  93.              
  94.                öπ¡¬µ¿∩  fcvt  »αÑ«íαáºπÑΓ  τ¿ß½« ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ó ß¿¼-
  95.          ó«½∞¡πε ßΓ᫬π. Value - τ¿ß½« ß »½áóáεΘÑ⌐ Γ«τ¬«⌐,  ¬«Γ«α«Ñ  ¡πª¡«
  96.          »αÑ«íαẫóáΓ∞.  öπ¡¬µ¿∩  fcvt  ºá»«¼¿¡áÑΓ  µ¿Σαδ  ¿º value ó ó¿ñÑ
  97.          ßΓ᫬¿ ¿ ñ«íáó½∩ÑΓ ¬ ¡Ñ⌐ ¡π½Ñó«⌐ ß¿¼ó«½ ('0\').
  98.                é áαúπ¼Ñ¡ΓÑ ndec ºá»«¼¿¡áÑΓß∩ ¬«½¿τÑßΓó« µ¿Σα  »«ß½Ñ  ñÑß∩-
  99.          Γ¿τ¡«⌐ Γ«τ¬¿.
  100.                àß½¿  ¬«½¿τÑßΓó« µ¿Σα »«ß½Ñ ñÑß∩Γ¿τ¡«⌐ Γ«τ¬¿ ó value »αÑóδ-
  101.          ΦáÑΓ ndec, τ¿ß½«  «¬απú½∩ÑΓß∩,  ¬á¬  φΓ«  ñѽáÑΓß∩  ó  Σ«α¼áΓÑ  F
  102.          FORTRAN. àß½¿ µ¿Σα ¼Ñ¡∞ΦÑ, τѼ ó ndec, ßΓ᫬á ñ«»«½¡∩ÑΓß∩ ¡π½∩¼¿.
  103.                é  ßΓα«¬Ñ σαá¡∩Γß∩ Γ«½∞¬« µ¿Σαδ. Å«º¿µ¿∩ ñÑß∩Γ¿τ¡«⌐ Γ«τ¬¿ ¿
  104.          º¡á¬ τ¿ß½á value ¼«úπΓ íδΓ∞  »«½πτÑ¡δ  »«ß½Ñ  ó맮óá  Σπ¡¬µ¿¿  ¿º
  105.          decptr  ¿  signptr.  Çαúπ¼Ñ¡Γ decptr π¬áºδóáÑΓ ¡á µÑ½«Ñ º¡áτÑ¡¿Ñ,
  106.          ºáñáεΘÑÑ »«º¿µ¿ε ñÑß∩Γ¿τ¡«⌐ Γ«τ¬¿, ßτ¿Γá∩ «Γ ¡áτá½á ßΓ᫬¿. 0 ¿½¿
  107.          «Γα¿µáΓѽ∞¡«Ñ µÑ½«Ñ º¡áτÑ¡¿Ñ «º¡áτáεΓ, τΓ« ñÑß∩Γ¿τ¡á∩ Γ«τ¬á ½Ñª¿Γ
  108.          ½ÑóÑÑ ßἫ⌐ »Ñαó«⌐ µ¿Σαδ. Çαúπ¼Ñ¡Γ  signptr  π¬áºδóáÑΓ  ¡á  µÑ½«Ñ
  109.          º¡áτÑ¡¿Ñ, «»αÑñѽ∩εΘÑÑ º¡á¬ value: Ñß½¿ µÑ½«Ñ signptr πßΓá¡«ó½Ñ¡«
  110.          ó 0, Γ« value - »«½«ª¿Γѽ∞¡«Ñ, Ñß½¿ µÑ½«Ñ signptr - ¡Ñ¡π½Ñó«Ñ, Γ«
  111.          value - «Γα¿µáΓѽ∞¡«Ñ.
  112.                
  113.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  114.                
  115.                öπ¡¬µ¿∩ fcvt ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á ßΓα«¬π µ¿Σα. é«ºóαáΘá-
  116.          Ñ¼«ú« º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  117.                æ¼.ΓᬪѠatol, atof, atoi, ecvt, gcvt.
  118.  
  119.                                       - 96 -
  120.          
  121.          
  122.             
  123.                çá¼Ñτá¡¿Ñ!  öπ¡¬µ¿¿ ecvt ¿ fcvt ¿ß»«½∞ºπεΓ ñ½∩ »αÑ«íαẫóá-
  124.          ¡¿∩ «ñ¿¡ ¿ Γ«Γ ªÑ ßΓáΓ¿τÑ߬¿ αáß»αÑñѽѡ¡δ⌐ íπΣÑα. èáªñ«Ñ «íαáΘÑ-
  125.          ¡¿Ñ ¬ «ñ¡«⌐ ¿º φΓ¿σ »α«µÑñπα π¡¿τΓ«ªáÑΓ αѺπ½∞ΓáΓ »αÑñδñπΘÑú« «í-
  126.          αáΘÑ¡¿∩.
  127.       
  128.                Åα¿¼Ñα.
  129.                
  130.                #include <stdlib.h>
  131.                int decimal, sign;
  132.                char *buffer;
  133.                int precision = 10;
  134.                buffer = fcvt (3.1415926535, precision,&decimal,&sign);
  135.                /*buffer ="31415926535", decimal=1, sign=0*/
  136.       
  137.       
  138.                 FDOPEN
  139.             
  140.                #include <stdio.h>
  141.                FILE *fdopen (handle,type);
  142.                int handle;                  Handle-α, ßßδ½áεΘ¿⌐ß∩ ¡á «Γ¬-
  143.                                             αδΓδ⌐ Σá⌐½.
  144.                char type;                   ÉáºαÑΦÑ¡¡δ⌐ Γ¿» ñ«ßΓπ»á.
  145.             
  146.                Ä»¿ßá¡¿Ñ:
  147.             
  148.                öπ¡¬µ¿∩ fdopen ßó∩ºδóáÑΓ »«Γ«¬ óó«ñá/óδó«ñá ß Σá⌐½«¼, ¿ñÑ¡-
  149.          Γ¿Σ¿µ¿α«óá¡¡δ¼  handle,  τΓ« »«ºó«½∩ÑΓ ßñѽáΓ∞ Σá⌐½, «Γ¬αδΓδ⌐ ¬á¬
  150.          ¡¿º¬«πα«ó¡Ñóδ⌐, Σ«α¼áΓ¿α«óá¡¡δ¼ ¿ íπΣÑਧ«óá¡¡δ¼. ü«½ÑÑ  »«ñα«í¡«
  151.          φëà»α«µÑßß «»¿ßá¡ ó αáºñѽѠ4.7 "éó«ñ ¿ óδó«ñ" ñá¡¡«ú« απ¬«ó«ñ-
  152.          ßΓóá.  æ¿¼ó«½∞¡á∩ ßΓ᫬á type «»αÑñѽ∩ÑΓ Γ¿» ñ«ßΓπ»á ¬ ΓαÑíπѼ«¼π
  153.          Σá⌐½π ß½ÑñπεΘ¿¼ «íαẫ¼:
  154.             
  155.             ÆêÅ                   ÄÅêæÇìêà
  156.                                                                   
  157.             "r"          ÄΓ¬αδΓ∞  ñ½∩  τΓÑ¡¿∩.  (¥Γ«Γ Σá⌐½  ñ«½ªÑ¡
  158.                          ßπΘÑßΓó«óáΓ∞).
  159.                                                                                
  160.             "w"          ÄΓ¬αδΓ∞ »πßΓ«⌐ Σá⌐½ ñ½∩ ºá»¿ß¿; Ñß½¿ φΓ«Γ
  161.                          Σá⌐½  αá¡ÑÑ  ßπΘÑßΓó«óá½,  Ñú« ß«ñÑন¼«Ñ
  162.                          π¡¿τΓ«ªáÑΓß∩.
  163.                          
  164.             "a"          ÄΓ¬αδΓ∞ Σá⌐½ ñ½∩  ºá»¿ß¿  (ñ«íáó½Ñ¡¿∩)  ó
  165.                          ¬«¡Ñµ  Σá⌐½á.  æ«ºñáΓ∞  Σá⌐½ ºá¡«ó«, Ñß½¿
  166.                          Ñú« ¡ÑΓ.
  167.                          
  168.             "r+"         öá⌐½ «Γ¬αδΓ  «ñ¡«óαѼѡ¡«  ñ½∩  τΓÑ¡¿∩  ¿
  169.                          ºá»¿ß¿. öá⌐½ ñ«½ªÑ¡ ßπΘÑßΓó«óáΓ∞.
  170.                          
  171.             "w+"         ÄΓ¬αδΓ∞  »πßΓ«⌐  Σá⌐½ ñ½∩ τΓÑ¡¿∩ ¿ ºá»¿ß¿.
  172.                          àß½¿  φëà  Σá⌐½   ßπΘÑßΓóπÑΓ,  Γ«    Ñú«
  173.                          ß«ªÑন¼«Ñ π¡¿τΓ«ªáÑΓß∩.
  174.                          
  175.             "a+"         öá⌐½ ñ½∩  τΓÑ¡¿∩  ¿  ñ«íáó½Ñ¡¿∩.   æ«ºñáΓ∞
  176.                          Σá⌐½  ºá¡«ó«, Ñß½¿ Ñú« ¡ÑΓ.
  177.  
  178.                                       - 97 -
  179.          
  180.          
  181.             
  182.                çá¼Ñτá¡¿Ñ! ìπª¡« ó¡¿¼áΓѽ∞¡« »α¿¼Ñ¡∩Γ∞  αѪ¿¼δ  "w",  "w+",
  183.          Γᬠ ¬á¬ «¡¿ ¼«úπΓ π¡¿τΓ«ª¿Γ∞ ßπΘÑßΓóπεΘ¿Ñ Σá⌐½δ. æ»Ñµ¿Σ¿µ¿α«óá¡-
  184.          ¡δ⌐ type ñ«½ªÑ¡ íδΓ∞ ß«ó¼ÑßΓ¿¼ ß αѪ¿¼á¼¿ ñ«ßΓπ»á ¿½¿ sharing-αÑ-
  185.          ª¿¼«¼, ß ¬«Γ«αδ¼ Σá⌐½ íδ½ «Γ¬αδΓ. çá »«ññÑ᪬π φΓ«⌐ ß«ó¼ÑßΓ¿¼«ßΓ¿
  186.          «ΓóÑτáÑΓ »«½∞º«óáΓѽ∞.
  187.                àß½¿ Σá⌐½ «Γ¬αδΓ ß Γ¿»«¼ "a" ¿½¿ "a+", óßÑ «»Ñαᵿ¿  ºá»¿ß¿
  188.          óδ»«½¡∩εΓß∩  ó  ¬«¡Ñµ Σá⌐½á, σ«Γ∩ »α¿ ¿ß»«½∞º«óá¡¿¿ Σπ¡¬µ¿⌐ fseek
  189.          ¿½¿ rewind  ó«º¼«ª¡« »ÑαѼÑΘÑ¡¿Ñ Σá⌐½«ó«ú« π¬áºáΓѽ∩; «ñ¡á¬«, »Ñ-
  190.          αÑñ óδ»«½¡Ñ¡¿Ñ¼ ½εíδσ «»Ñαᵿ⌐ ºá»¿ß¿ «¡  óßÑúñá  ó«ºóαáΘáÑΓß∩  ó
  191.          ¬«¡Ñµ  Σá⌐½á.  Æá¬¿¼  «íαẫ¼, ßπΘÑßΓóπεΘ¿Ñ ñá¡¡δÑ ¡Ñ ß¼«úπΓ íδΓ∞
  192.          »ÑαѺỿßá¡¡δ¼¿. è«úñá ß»Ñµ¿Σ¿µ¿α«óá¡δ Γ¿»δ "r+", "w",  "a",  «ñ-
  193.          ¡«óαѼѡ¡« ñ«»π߬áÑΓß∩ τΓÑ¡¿Ñ ¿ ºá»¿ß∞. (â«ó«α∩Γ, τΓ« Σá⌐½ «Γ¬αδΓ
  194.          ñ½∩ «í¡«ó½Ñ¡¿∩). Å«φΓ«¼π  »α¿ »ÑαѬ½ετÑ¡¿¿ τΓÑ¡¿∩ ¡á ºá»¿ß∞ ¿ ¡á-
  195.          «í«α«Γ,  ¡πª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ fseek ¿½¿ rewind. ä½∩ Σπ¡¬µ¿¿
  196.          fseek (»α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿) ¼«ªÑΓ íδΓ∞ ß»Ñµ¿Σ¿µ¿α«óá¡á ΓѬπΘá∩  »«-
  197.          º¿µ¿∩.
  198.                ä«»«½¡¿Γѽ∞¡« ¬ º¡áτÑ¡¿∩¼, »α¿óÑñÑ¡¡δ¼ óδΦÑ, ¼«ªÑΓ íδΓ∞ ñ«-
  199.          íáó½Ñ¡ «ñ¿¡ ¿º ß½ÑñπεΘ¿σ ß¿¼ó«½«ó ¬ ßΓα«¬Ñ type, τΓ«íδ ß»Ñµ¿Σ¿µ¿-
  200.          α«óáΓ∞ αѪ¿¼ »αÑ«íαẫóá¡¿∩ ß¿¼ó«½«ó ¡«ó«⌐ ßΓ᫬¿.
  201.             
  202.             æ¿¼ó«½               ç¡áτÑ¡¿Ñ
  203.             
  204.               t          ÄΓ¬αδΓ∞   ó   ΓѬßΓ«ó«¼   (Γαá¡ß½¿απεΘѼ)
  205.                          αѪ¿¼Ñ; óó«ñ ¬«¼í¿¡áµ¿¿ "髺óαáΓ  ¬áαÑΓ¬¿
  206.                          - »ÑαÑó«ñ   ßΓ᫬¿"   »αÑ«íαẫóδóáΓ∞   ¬
  207.                          Ññ¿¡ßΓóÑ¡¡«¼π  ß¿¼ó«½π "»ÑαÑó«ñ  ßΓ᫬¿".
  208.                          éδó«ñ  ß¿¼ó«½á "»ÑαÑó«ñ ßΓ᫬¿"  »αÑ«íαá-
  209.                          º«óδóáΓ∞ ó ¬«¼í¿¡áµ¿ε "髺óαáΓ ¬áαÑΓ¬¿  -
  210.                          »ÑαÑó«ñ ßΓ᫬¿".
  211.             
  212.               b          ÄΓ¬αδΓ∞  ó   ñó«¿τ¡«¼   (¡ÑΓαá¡ß½¿απεΘѼ)
  213.                          αѪ¿¼Ñ; »αÑñΦÑñßΓóπεΘ¿Ñ    »αÑ«íαẫóá¡¿∩
  214.                          »«ñáó½∩εΓß∩.
  215.                          
  216.                àß½¿ t ¿½¿ b ó ßΓα«¬Ñ type ¡Ñ ºáñá¡δ, Γ« αѪ¿¼ »αÑ«íαẫóá-
  217.          ¡¿∩ «»αÑñѽ∩ÑΓß∩ »ÑαѼѡ¡«⌐ _fmode, πßΓá¡áó½¿óáѼ«⌐ »« π¼«½τá¡¿ε.
  218.             
  219.             
  220.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  221.             
  222.                öπ¡¬µ¿∩  fdopen  ó«ºóαáΘáÑΓ  π¬áºáΓѽ∞ ¡á «Γ¬αδΓδ⌐ »«Γ«¬. é
  223.          ß½πτáÑ «Φ¿í¬¿ º¡áτÑ¡¿Ñ π¬áºáΓѽ∩ αáó¡« NULL.
  224.                æ¼. ΓᬪѠdup, dup2,  fclose,  fcloseall,  fopen,  freopen,
  225.          open.
  226.             
  227.                Åα¿¼Ñα:
  228.             
  229.                #include <stdio.h>
  230.                #include <fcntl.h>
  231.                FILE *stream;
  232.                int fh;
  233.                fh=open("data", O_RDONLY);
  234.                /*  ß½ÑñπεΘ¿⌐  «»ÑαáΓ«α  »«ºó«½∩ÑΓ ßó∩ºáΓ∞ »«Γ«¬ ß «Γ¬αδΓδ¼
  235.          Σá⌐½«¼ */
  236.  
  237.                                       - 98 -
  238.          
  239.          
  240.                stream = fdopen(fh, "r");.
  241.       
  242.       
  243.                FEOF
  244.             
  245.                #include <stdio.h>
  246.                int feof(stream);
  247.                FILE *stream;                π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  248.             
  249.                Ä»¿ßá¡¿Ñ.
  250.             
  251.                öπ¡¬µ¿∩ feof «»αÑñѽ∩ÑΓ, ñ«ßΓ¿ú¡πΓ ½¿ ¬«¡Ñµ ºáñá¡¡«ú« »«Γ«-
  252.          ¬á. àß½¿ ¬«¡Ñµ Σá⌐½á (EOF) ñ«ßΓ¿ú¡πΓ, Γ« «»Ñαᵿ¿ τΓÑ¡¿∩  ó«ºóαá-
  253.          ΘáεΓ ¿¡ñ¿¬áΓ«α ¬«¡µá Σá⌐½á  »«¬á »«Γ«¬ ¡Ñ íπñÑΓ ºá¬αδΓ ¿½¿ óδºóá-
  254.          ¡á Σπ¡¬µ¿∩ rewind.
  255.             
  256.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  257.             
  258.                àß½¿  ΓѬπΘá∩  »«º¿µ¿∩ ∩ó½∩ÑΓß∩ ¬«¡µ«¼ Σá⌐½á (EOF), Σπ¡¬µ¿∩
  259.          feof ó«ºóαáΘáÑΓ ¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ. àß½¿ ΓѬπΘá∩ »«º¿µ¿∩ ¡Ñ ∩ó½∩-
  260.          ÑΓß∩ ¬«¡µ«¼ Σá⌐½á - ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ 0. öπ¡¬µ¿∩ feof  «Φ¿í«¬
  261.          ¡Ñ ó«ºóαáΘáÑΓ.
  262.                æ¼. ΓᬪѠclearerr, eof, ferror, perror.
  263.                
  264.                çá¼Ñτá¡¿Ñ! öπ¡¬µ¿∩ feof αÑ὿ºπÑΓß∩ ¬á¬ ¼á¬α«.
  265.             
  266.                Åα¿¼Ñα:
  267.             
  268.                #include <stdio.h>
  269.                char string[100];
  270.                FILE *stream;
  271.                /*  ß½ÑñπεΘ¿Ñ  «»ÑαáΓ«αδ  «íÑß»Ñτ¿óáεΓ  óó«ñ ßΓ᫬, »«¬á ¡Ñ
  272.          óßΓαÑΓ¿Γß∩ EOF */
  273.                while (!feof(stream))
  274.                if (fscanf(stream, "%s", string))
  275.                process (string);.
  276.       
  277.       
  278.                FERROR
  279.             
  280.                #include <stdio.h>
  281.                int ferror (stream);
  282.                FILE *stream;                π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  283.             
  284.             
  285.                Ä»¿ßá¡¿Ñ.
  286.             
  287.                öπ¡¬µ¿∩ ferror »α«óÑα∩ÑΓ «Φ¿í¬¿ τΓÑ¡¿∩ ¿  ºá»¿ß¿  ºáñá¡¡«ú«
  288.          »«Γ«¬á. Åα¿ ó«º¡¿¬¡«óÑ¡¿¿ «Φ¿í¬¿ ¿¡ñ¿¬áΓ«α «Φ¿í¬¿ stream «ßΓáÑΓß∩
  289.          πßΓá¡«ó½Ñ¡¡δ¼  ñ« ΓÑσ »«α, »«¬á »«Γ«¬ ¡Ñ ºá¬α«ÑΓß∩ ¿½¿ "αáºαπΦ¿Γ-
  290.          ß∩" (rewound)  ¿½¿ ªÑ »«¬á ¡Ñ íπñÑΓ óδºóá¡á Σπ¡¬µ¿∩ clearerr.
  291.             
  292.             
  293.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  294.             
  295.  
  296.                                       - 99 -
  297.          
  298.          
  299.                é ß½πτáÑ «í¡áαπªÑ¡¿∩ «Φ¿í¬¿ ó »«Γ«¬Ñ  Σπ¡¬µ¿∩ ferror  ó«ºó-
  300.          αáΘáÑΓ ¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ. é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ 0 ßó¿ñÑΓѽ∞ßΓóπ-
  301.          ÑΓ «í «ΓßπΓßΓó¿¿ «Φ¿í¬¿.
  302.                æ¼. ΓᬪѠclearerr, eof, ferror, perrpr.
  303.                ¥Γá Σπ¡¬µ¿∩ αÑ὿ºπÑΓß∩ ¬á¬ ¼á¬α«.
  304.             
  305.                Åα¿¼Ñα:
  306.             
  307.                #include <stdio.h>
  308.                FILE *stream;
  309.                char *string;
  310.                .
  311.                .
  312.                .
  313.             
  314.                /*  ß½ÑñπεΘ¿Ñ  «»ÑαáΓ«αδ óó«ñ∩Γ ñá¡¡δÑ ó »«Γ«¬ ¿ »α«óÑα∩εΓ,
  315.          ¡Ñ ó«º¡¿¬½á ½¿ «Φ¿í¬á »α¿ ºá»¿ß¿. ÅÑαÑñ ºá»¿ß∞ε ñá¡¡δσ  ó  »«Γ«¬
  316.          «¡ ñ«½ªÑ¡ íδΓ∞ »αÑñóáα¿Γѽ∞¡« «Γ¬αδΓ */
  317.                fprintf (stream, "%s\n", string);
  318.                if (ferror(stream))
  319.                { fprintf (stderr, "write error\n");
  320.                clearerr (stream;
  321.                                 }
  322.       
  323.                FFLUSH
  324.             
  325.             
  326.                #include <stdio.h>
  327.                int fflush (stream);
  328.                FILE *stream;                π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  329.             
  330.                Ä»¿ßá¡¿Ñ.
  331.             
  332.                àß½¿ ºáñá¡¡δ⌐ »«Γ«¬ stream «Γ¬αδΓ ñ½∩ óδó«ñá, Γ« ß«ñÑন¼«Ñ
  333.          íπΣÑαá,  ßó∩ºá¡¡«ú« ß »«Γ«¬«¼ stream Σπ¡¬µ¿¿ fflush, ºá»¿ßδóáÑΓß∩
  334.          ó ß««ΓóÑΓßΓóπεΘ¿⌐ Σá⌐½. àß½¿ »«Γ«¬ «Γ¬αδΓ ñ½∩ óó«ñá,  Γ«  Σπ¡¬µ¿∩
  335.          fflush  «τ¿ΘáÑΓ ß«ñÑন¼«Ñ íπΣÑαá. Å«ß½Ñ ó맮óá Σπ¡¬µ¿¿ »«Γ«¬ «ß-
  336.          ΓáÑΓß∩ «Γ¬αδΓδ¼. ä½∩  ¡ÑíπΣÑਧ«óá¡¡«ú«  »«Γ«¬á  »α¿¼Ñ¡Ñ¡¿Ñ  φΓ«⌐
  337.          Σπ¡¬µ¿¿ ¡Ñ φΣΣÑ¬Γ¿ó¡«.
  338.             
  339.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  340.             
  341.                öπ¡¬µ¿∩  fflush  ó«ºóαáΘáÑΓ 0, Ñß½¿ íπΣÑα πß»ÑΦ¡« «í¡«ó½Ñ¡.
  342.          ¥Γ« ªÑ º¡áτÑ¡¿Ñ ó«ºóαáΘáÑΓß∩, ¬«úñá »«Γ«¬  ¡Ñ  ¿¼ÑÑΓ  íπΣÑαá  ¿½¿
  343.          ¬«úñá  «¡ «Γ¬αδΓ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩. é ß½πτáѠ󫺡¿¬¡«óÑ¡¿∩ «Φ¿í¬¿
  344.          ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ EOF.
  345.                æ¼. ΓᬪѠfclose, fflushall, setbuf.
  346.                
  347.                çá¼Ñτá¡¿Ñ! üπΣÑαδ áóΓ«¼áΓ¿τÑ߬¿ «í¡«ó½∩εΓß∩, ¬«úñá «¡¿ »«½-
  348.          ¡δ, ¬«úñá »«Γ«¬ ºá¬αδóáÑΓß∩ ¿½¿  »α«¿º«Φ½«  ¡«α¼á½∞¡«Ñ  «¬«¡τá¡¿Ñ
  349.          αáí«Γδ »α«úαá¼¼δ íѺ ºá¬αδΓ¿∩ »«Γ«¬á.
  350.             
  351.                Åα¿¼Ñα:
  352.             
  353.                #include <srtio.h>
  354.  
  355.                                       - 100 -
  356.          
  357.          
  358.                FILE *stream;
  359.                char buffer[BUFSIZ];
  360.                .
  361.                .
  362.                .
  363.                /*  ß½ÑñπεΘ¿Ñ  ñóá «»ÑαáΓ«αá «í¡«ó½∩εΓ íπΣÑα »«Γ«¬á ¿ πßΓá-
  364.          ¡áó½¿óáεΓ ¡«óδ⌐ íπΣÑα ñ½∩ »«Γ«¬á */
  365.                fflush (stream);
  366.                setbuf (stream, buffer);.
  367.       
  368.             
  369.                _FFREE
  370.             
  371.                #include <malloc.h>          ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩  «íΩ∩ó½Ñ-
  372.                                             ¡¿∩  Σπ¡¬µ¿¿.
  373.                void _ffree(ptr);
  374.                char far *ptr;               π¬áºáΓѽ∞ ¡á ºáσóáτÑ¡¡δ⌐ í½«¬
  375.                                             »á¼∩Γ¿.
  376.              
  377.                Ä»¿ßá¡¿Ñ.
  378.             
  379.                öπ¡¬µ¿∩  _ffree  «ßó«í«ªñáÑΓ  í½«¬ »á¼∩Γ¿ ó¡Ñ π¼á½τ¿óáѼ«ú«
  380.          ßÑú¼Ñ¡Γá ñá¡¡δσ. Çαúπ¼Ñ¡Γ ptr π¬áºδóáÑΓ ¡á αá¡ÑÑ ºáσóáτÑ¡¡δ⌐ í½«¬
  381.          »á¼∩Γ¿ »«ßαÑñßΓó«¼ ó맮óá Σπ¡¬µ¿¿ _fmalloc.
  382.                ù¿ß½«¼ «ßó«í«ñ¿óΘ¿σß∩ íá⌐Γ«ó ∩ó½∩ÑΓß∩ τ¿ß½« íá⌐Γ«ó, «»αÑñÑ-
  383.          ½Ñ¡¡δσ »α¿ ºáσóáΓÑ (αẼÑΘÑ¡¿¿) í½«¬á. Å«ß½Ñ ó맮óá «ßó«í«ñ¿óΦ¿⌐-
  384.          ß∩ í½«¬ ó¡«ó∞ »α¿ú«ñÑ¡ ñ½∩ ºáσóáΓá.
  385.             
  386.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  387.             
  388.                é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  389.                æ¼.ΓᬪѠ_fmalloc, free, maloc.
  390.             
  391.                çá¼Ñτá¡¿Ñ! Å«»δΓ¬á «ßó«í«ñ¿Γ∞ ¡ÑóÑα¡δ⌐  ptr  (π¬áºáΓѽ∞  ¡Ñ
  392.          ºáσóáΓδóáÑΓß∩ »«ßαÑñßΓó«¼ _fmalloc) ¼«ªÑΓ »α¿óÑßΓ¿ ¬ »«ß½ÑñπεΘѼπ
  393.          ºáσóáΓπ ¿ óδºóáΓ∞ «Φ¿í¬¿.
  394.             
  395.                Åα¿¼Ñα:
  396.             
  397.                #include <malloc.h>
  398.                #include <stdio.h>
  399.                char far *alloc;
  400.                /* çáσóáΓδóáÑΓ 100 íá⌐Γ«ó ¿ ºáΓѼ «ßó«í«ªñáÑΓ ¿σ */
  401.                if ((alloc=_fmalloc(100))==NULL)
  402.                /* »α«óÑα∩ÑΓ ¡á »αáó¿½∞¡«ßΓ∞ π¬áºáΓѽ∩ */
  403.                printf("unable to allocate memory\n");
  404.                else   {
  405.                .
  406.                .
  407.                .
  408.                _ffree(alloc);
  409.                /* «ßó«í«ªñáÑΓ »á¼∩Γ∞ ñ½∩ heap */
  410.                }
  411.       
  412.       
  413.  
  414.                                       - 101 -
  415.          
  416.          
  417.                FGETC-FGETCHAR
  418.             
  419.             
  420.                #include <stdio.h>
  421.                int fgetc (stream);          τ¿ΓáÑΓ ß¿¼ó«½ ¿º »«Γ«¬á.
  422.                FILE *stream                 π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  423.                int fgetchar();              τ¿ΓáÑΓ ß¿¼ó«½ ¿º stdin.
  424.             
  425.                Ä»¿ßá¡¿Ñ.
  426.             
  427.                öπ¡¬µ¿∩  fgetc  τ¿ΓáÑΓ «Γñѽ∞¡δ⌐ ΓѬπΘ¿⌐ ß¿¼ó«½ ¿º óσ«ñ¡«ú«
  428.          »«Γ«¬á stream ¿ πóѽ¿τ¿óáÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐  π¬áºáΓѽ∞  (Ñß½¿  «¡
  429.          ÑßΓ∞)  ñ½∩  π¬áºá¡¿∩  ß½ÑñπεΘÑú«  ßτ¿ΓδóáѼ«ú«  ß¿¼ó«½á.  öπ¡¬µ¿∩
  430.          fgetchar ∩ó½∩ÑΓß∩ φ¬ó¿óá½Ñ¡Γ¡«⌐ Σπ¡¬µ¿¿ fgetc(stdin).
  431.             
  432.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  433.             
  434.                ¥Γ¿ ñóÑ Σπ¡¬µ¿¿ ó«ºóαáΘáεΓ ßτ¿Γá¡¡δ⌐ ß¿¼ó«½. é ß½πτáÑ  ó«º-
  435.          ¡¿¬¡«óÑ¡¿∩ «Φ¿í¬¿ ¿½¿ ñ«ßΓ¿ªÑ¡¿∩ ¬«¡µá Σá⌐½á  ó«ºóαáΘáÑΓß∩ º¡áτÑ-
  436.          ¡¿Ñ EOF; «ñ¡á¬«, º¡áτÑ¡¿Ñ EOF ¼«ªÑΓ íδΓ∞ ó«ß»α¿¡∩Γ« ¬á¬ µÑ½á∩ óÑ-
  437.          ½¿τ¿¡á,  Γ«úñá  ¡πª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ ferror ¿ feof ñ½∩ »α«-
  438.          óÑન «Φ¿í¬¿ ¿½¿ ¬«¡µá Σá⌐½á.
  439.                æ¼. ΓᬪѠfputc, fputchar, getc, getchar.
  440.                
  441.                çá¼Ñτá¡¿Ñ! Åα«µÑñπαδ fgetc  ¿  fgetchar  ¿ñÑ¡Γ¿τ¡δ  getc  ¿
  442.          getchar, ¡« «¡¿ ∩ó½∩εΓß∩ Σπ¡¬µ¿∩¼¿, á ¡Ñ ¼á¬α«.
  443.             
  444.                Åα¿¼Ñα:
  445.             
  446.                #include <stdio.h>
  447.                FILE *stream;
  448.                char buffer[81]; int i; int ch;
  449.                . . .
  450.                /* ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ óδí¿αáεΓ ßΓα«¬π ¿º »«Γ«¬á */
  451.                for (i=0;  (i<80)  &&  ((ch=fgetc(stream))  !=EOF)  &&
  452.                (ch!='\n'); i++)
  453.                buffer[i]=ch;
  454.                buffer[i]='\0';
  455.                /* é óδΦÑ»α¿óÑñÑ¡¡δσ  «»ÑαáΓ«αáσ ñ½∩ ßí«αá ßΓ᫬¿ ¿º »«Γ«¬á
  456.          stdin   ó¼ÑßΓ«   fgetc(stream)   ñ«½ª¡á  íδΓ∞  »α¿¼Ñ¡Ñ¡á  Σπ¡¬µ¿∩
  457.          fgetchar(). Æ« ªÑ φ¬ó¿óá½Ñ¡Γ¡« ñ½∩ fgetc(stdin). */
  458.       
  459.       
  460.                FGETS
  461.             
  462.             
  463.                #include <stdio.h>
  464.                char *fgets(string, n, stream);τ¿ΓáÑΓ  ßΓα«¬π  ¿º  »«Γ«¬á
  465.                                               stream.
  466.                char *string;                  »á¼∩Γ∞ ñ½∩ σαá¡Ñ¡¿∩ ñá¡¡δσ.
  467.                int n;                         τ¿ß½« ß«σαá¡∩Ѽδσ ß¿¼ó«½«ó.
  468.                FILE *stream;                  π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  469.  
  470.             
  471.  
  472.                                       - 102 -
  473.          
  474.          
  475.                Ä»¿ßá¡¿Ñ.
  476.             
  477.                öπ¡¬µ¿∩  fgets  τ¿ΓáÑΓ  ßΓα«¬π  ¿º óσ«ñ¡«ú« »«Γ«¬á stream ¿
  478.          αáß»«½áúáÑΓ ÑÑ ó string. æ¿¼ó«½δ ßτ¿ΓδóáεΓß∩, ¡áτ¿¡á∩  ß  ΓѬπΘÑ⌐
  479.          »«º¿µ¿¿ stream, ñ« ß¿¼ó«½á ¡«ó«⌐ ßΓ᫬¿ '\n'  ¿½¿ ñ« ¬«¡µá »«Γ«¬á,
  480.          ½¿í« »«¬á τ¿ß½« ßτ¿Γá¡¡δσ ß¿¼ó«½«ó ¡Ñ ßΓá¡ÑΓ αáó¡δ¼ n-1.  ÉѺπ½∞-
  481.          ΓáΓ  αẼÑΘáÑΓß∩ ó string, á ºáΓѼ ¬ ¡Ñ¼π ñ«íáó½∩ÑΓß∩ ß¿¼ó«½ null
  482.          -'\0'. æ¿¼ó«½ ¡«ó«⌐ ßΓ᫬¿ ΓᬪѠó¬½ετáÑΓß∩ ó string. àß½¿ ó ¡áτá-
  483.          ½Ñ ßτ¿Γδóá¡¿∩ n αáó¡∩½«ß∞ 1, Γ« string íπñÑΓ »πßΓ«⌐ (""). öπ¡¬µ¿∩
  484.          fgets á¡á½«ú¿τ¡á í¿í½¿«ΓÑτ¡«⌐ Σπ¡¬µ¿¿ gets, «ñ¡á¬«, gets ºá¼Ñ¡∩ÑΓ
  485.          ß¿¼ó«½ ¡«ó«⌐ ßΓ᫬¿ ¡π½Ñóδ¼ ß¿¼ó«½«¼.
  486.             
  487.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  488.             
  489.                öπ¡¬µ¿∩ fgets ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á ßΓ᫬π string. é ß½π-
  490.          τáÑ «Φ¿í¬¿ ¿½¿ ¬«¡µá Σá⌐½á  ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ NULL. ä½∩ «»αÑ-
  491.          ñѽѡ¿∩ Γ«ú«, τΓ« »α«¿º«Φ½« - «Φ¿í¬á ¿½¿ ¬«¡Ñµ Σá⌐½á, ¿ß»«½∞ºπεΓ-
  492.          ß∩ Σπ¡¬µ¿¿ feof ¿ ferror.
  493.                æ¼. ΓᬪѠfputs, gets, puts.
  494.             
  495.                Åα¿¼Ñα:
  496.                
  497.                include <stdio.h>
  498.                FILE *stream;
  499.                char line[100], *result;
  500.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α óδí¿αáÑΓ ßΓ᫬π  ß¿¼ó«½«ó  ¿º  »«Γ«¬á
  501.          stream. î«ªÑΓ íδΓ∞ ßτ¿Γá¡« ¡Ñ í«½ÑÑ 99 ß¿¼ó«½«ó  ½¿í« óßÑ ß¿¼ó«½δ
  502.          ñ« ß¿¼ó«½á ¡«ó«⌐ ßΓ᫬¿ '\n', ó¬½ετá∩ ¿ Ñú«. */
  503.                result = fgets(line, 100, stream);.
  504.       
  505.             
  506.                FIEEETOMSBIN-FMSBINTOIEEE
  507.             
  508.             
  509.                #include <math.h>
  510.                int  fieeetomsbin(src4,dst4);»αÑ«íαáºπÑΓ τ¿ß½« ß »½áóáεΘÑ⌐
  511.                                             Γ«τ¬«⌐ ó Σ«α¼áΓÑ.
  512.                                             IEEE ó ñó«¿τ¡δ⌐ Σ«α¼áΓ ß »½á-
  513.                                             óáεΘÑ⌐ Γ«τ¬«⌐ MS.
  514.                int fmsbintoieee(src4,dst4); »αÑ«íαáºπÑΓ τ¿ß½«  ó  ñó«¿τ¡«¼
  515.                                             Σ«α¼áΓÑ MS  ß »½áóáεΘÑ⌐ Γ«τ¬«⌐
  516.                                             ó  τ¿ß½« ß  »½áóáεΘÑ⌐ Γ«τ¬«⌐ ó
  517.                                             Σ«α¼áΓÑ IEEE.
  518.             
  519.                Ä»¿ßá¡¿Ñ.
  520.             
  521.                Åα«µÑñπαá  fieeetomsbin  »αÑ«íαẫóδóáÑΓ  τ¿ß½« ß «ñ¿¡áα¡«⌐
  522.          Γ«τ¡«ßΓ∞ε ¿ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ó Σ«α¼áΓÑ IEEE ¬ ñó«¿τ¡«¼π Σ«α¼áΓπ
  523.          Microsoft.
  524.                Åα«µÑñπαá fmsbintoieee »αÑ«íαẫóδóáÑΓ  τ¿ß½«  ß  »½áóáεΘÑ⌐
  525.          Γ«τ¬«⌐ ó ñó«¿τ¡«¼ Σ«α¼áΓÑ Microsoft ¬ Σ«α¼áΓπ IEEE.
  526.                ¥Γ¿  »α«µÑñπαδ  »«ºó«½∩εΓ »α«úαἼἠæ¿, ¬«Γ«αδÑ ºá»¿ßδóáεΓ
  527.          τ¿ß½á ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ó Σ«α¼áΓ  IEEE,  ¿ß»«½∞º«óáΓ∞  τ¿ß½Ñ¡¡δÑ
  528.          ñá¡¡δÑ  ó  »«½∩σ  ñá¡¡δσ ß½πτá⌐¡«ú« ñ«ßΓπ»á, ß«ºñá¡¡δÑ »α¿ »«¼«Θ¿
  529.          Microsoft BASIC, ¬«Γ«αδ⌐ ºá»¿ßδóáÑΓ τ¿ß½á ß  »½áóáεΘÑ⌐  Γ«τ¬«⌐  ó
  530.          ñó«¿τ¡δ⌐ Σ«α¼áΓ Microsoft ¿ ¡á«í«α«Γ.
  531.  
  532.                                       - 103 -
  533.          
  534.          
  535.                Çαúπ¼Ñ¡Γ  scr4  π¬áºδóáÑΓ  ¡á »αÑ«íαáºπѼ«Ñ float-º¡áτÑ¡¿Ñ.
  536.          ÉѺπ½∞ΓáΓ ºá»¿ßδóáÑΓß∩ ó αáß»«½«ªÑ¡¿Ñ, ºáñá¡¡«Ñ áαúπ¼Ñ¡Γ«¼ dst4.
  537.             
  538.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  539.             
  540.                ¥Γ¿ Σπ¡¬µ¿¿ ó«ºóαáΘáεΓ 0, Ñß½¿ »αÑ«íαẫóá¡¿Ñ í佫 πß»ÑΦ¡δ¼
  541.          ¿ 1, Ñß½¿ »αÑ«íαẫóá¡¿Ñ »«ó½Ñ¬½« »ÑαÑ»«½¡Ñ¡¿Ñ.
  542.                æ¼.ΓᬪѠdieeetomsbin, dmsbintoieee.
  543.             
  544.                çá¼Ñτá¡¿Ñ! ¥Γ¿ »α«µÑñπαδ ¡Ñ «íαáíáΓδóáεΓ IEEE NAN ¿  íÑ߬«-
  545.          ¡Ñτ¡«ßΓ∞. ìÑ«íδτ¡δÑ IEEE Γαá¬ΓπεΓß∩ ó »αÑ«íαẫóá¡¿∩σ ¬á¬ 0.
  546.       
  547.       
  548.                FILELENGTH
  549.             
  550.             
  551.                #include <io.h>              ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ-
  552.                                             ¡¿∩ Σπ¡¬µ¿¿.
  553.                long filelength(handle);
  554.                int handle;                  handle-α, ßßδ½áεΘ¿⌐ß∩ ¡á  «Γ-
  555.                                             ¬αδΓδ⌐ Σá⌐½.
  556.             
  557.                Ä»¿ßá¡¿Ñ.
  558.             
  559.                öπ¡¬µ¿∩ filelength ó«ºóαáΘáÑΓ ó íá⌐Γáσ ñ½¿¡π Σá⌐½á, ßó∩ºá¡-
  560.          ¡«ú« ß ºáñá¡¡δ¼ handle.
  561.             
  562.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  563.             
  564.                öπ¡¬µ¿∩ filelength ó«ºóαáΘáÑΓ ñ½¿¡π Σá⌐½á ó íá⌐Γáσ. é«ºóαá-
  565.          ΘáѼ«Ñ º¡áτÑ¡¿Ñ -1L ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ  ¿ errno πßΓá¡áó½¿-
  566.          óáÑΓß∩ ó EBADF, τΓ«íδ π¬áºáΓ∞ ¡á ¡ÑóÑα¡δ⌐ Σá⌐½«óδ⌐ handle.
  567.                æ¼.ΓᬪѠchsize, fileno, fstat, stat.
  568.             
  569.                Åα¿¼Ñα:
  570.             
  571.                #include <io.h>
  572.                #include <stdio.h>
  573.                #include <stdlib.h>
  574.                FILE *stream;
  575.                long length;
  576.                stream=fopen("data","r");
  577.                .
  578.                .
  579.                .
  580.                /*  ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ »δΓáεΓß∩ «»αÑñѽ¿Γ∞ ** ñ½¿¡π Σá⌐½á,
  581.          ßó∩ºá¡¡«ú« ß »«Γ«¬«¼ stream */
  582.                length=filelength(fileno(stream));
  583.                if(length==-1L)
  584.                perror("filelength failed");.
  585.       
  586.       
  587.             
  588.             
  589.  
  590.                                       - 104 -
  591.          
  592.                FILENO
  593.          
  594.                #include <stdio.h>
  595.                int fileno (stream);
  596.                FILE *stream;                π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  597.                                                                                                                        
  598.                Ä»¿ßá¡¿Ñ.
  599.             
  600.                öπ¡¬µ¿∩ fileno ó«ºóαáΘáÑΓ  ΓѬπΘ¿⌐  handle  (¡«¼Ñα)  Σá⌐½á,
  601.          ßó∩ºá¡¡δ⌐  ß »«Γ«¬«¼ stream. àß½¿ »«Γ«¬ ßó∩ºá¡ í«½ÑÑ  τѼ ß «ñ¡¿¼
  602.          handle-α«¼  ¿ ¬«úñá »«Γ«¬ »αÑñóáα¿Γѽ∞¡« «Γ¬αδΓ, ó ¬áτÑßΓóÑ ó«ºó-
  603.          αáΘáѼ«ú« º¡áτÑ¡¿∩ «»αÑñѽ∩ÑΓß∩ handle.
  604.             
  605.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  606.             
  607.                öπ¡¬µ¿∩ fileno ó«ºóαáΘáÑΓ handle-α Σá⌐½á; ó ß½πτáÑ «Φ¿í¬¿ -
  608.          ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ. àß½¿ »«Γ«¬ stream ¡Ñ ºáñá¡ ¬á¬ «Γ¬αδ-
  609.          Γδ⌐ Σá⌐½, Γ«úñá ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ ¡Ñ «»αÑñѽѡ«.
  610.                æ¼. ΓᬪѠfdopen, filelength, fopen, freopen.
  611.                
  612.                çá¼Ñτá¡¿Ñ! Fileno αÑ὿ºπÑΓß∩ ¬á¬ ¼á¬α«.
  613.             
  614.                Åα¿¼Ñα:
  615.    
  616.                #include <stdio.h>
  617.                int result;
  618.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α «»αÑñѽ∩ÑΓ handle  Σá⌐½á  ñ½∩  »«Γ«¬á
  619.          stderr*/
  620.                result= fileno(stderr);      /* αѺπ½∞ΓáΓ αáóÑ¡ 2 */
  621.          
  622.                
  623.                FLOOR
  624.             
  625.             
  626.                #include <math.h>
  627.                double floor(x);
  628.                double x;                    º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
  629.                
  630.                Ä»¿ßá¡¿Ñ.
  631.             
  632.                öπ¡¬µ¿∩ floor ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐, »αÑñ-
  633.          ßΓáó½∩εΘÑÑ ¡á¿í«½∞ΦÑÑ µÑ½«Ñ, ¬«Γ«α«Ñ ¼Ñ¡∞ΦÑ ¿½¿ αáó¡« x.
  634.             
  635.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  636.             
  637.                öπ¡¬µ¿∩ floor ó«ºóαáΘáÑΓ αѺπ½∞ΓáΓ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐. é«º-
  638.          óαáΘáѼ«ú« º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  639.                æ¼.ΓᬪѠceil, fmod.
  640.             
  641.                Åα¿¼Ñα:
  642.             
  643.                #include <math.h>
  644.                double y;
  645.                .
  646.                .
  647.                .
  648.                y = floor(2.8); /* y = 2.0 */
  649.  
  650.                                       - 105 -
  651.          
  652.          
  653.                y = floor(-2.8); /* y = -3.0 */
  654.       
  655.       
  656.                FLUSHALL
  657.             
  658.             
  659.                #include <stdio.h>
  660.                int flushall();
  661.             
  662.                Ä»¿ßá¡¿Ñ.
  663.             
  664.                öπ¡¬µ¿∩  flushall  ºá»¿ßδóáÑΓ ß«ñÑন¼«Ñ óßÑσ íπΣÑα«ó, ßó∩-
  665.          ºá¡¡δσ ß «Γ¬αδΓ묨 input »«Γ«¬á¼¿, ó ß««ΓóÑΓßΓóπεΘ¿Ñ  Σá⌐½δ.  éßÑ
  666.          íπΣÑαδ, ßó∩ºá¡¡δÑ ß «Γ¬αδΓ묨 »«Γ«¬á¼¿, «τ¿ΘáεΓß∩; ß½ÑñπεΘá∩ «»Ñ-
  667.          αᵿ∩  τΓÑ¡¿∩  (Ñß½¿  «¡á ÑßΓ∞) ßτ¿ΓδóáÑΓ ¡«óδÑ ñá¡¡δÑ ¿º óσ«ñ¡δσ
  668.          Σá⌐½«ó ó íπΣÑαδ. Å«ß½Ñ ó맮óá Σπ¡¬µ¿¿ flushall  óßÑ »«Γ«¬¿  «ßΓá-
  669.          εΓß∩ «Γ¬αδΓ묨.
  670.             
  671.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  672.             
  673.                äá¡¡á∩   Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ  ¬«½¿τÑßΓó«  «Γ¬αδΓδσ  »«Γ«¬«ó
  674.          (óσ«ñ¡δσ ¿ óδσ«ñ¡δσ). é ß½πτáÑ «Φ¿í¬¿ ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  675.                æ¼. ΓᬪѠfflush.
  676.                
  677.                çá¼Ñτá¡¿Ñ! üπΣÑαδ áóΓ«¼áΓ¿τÑ߬¿ «í¡«ó½∩εΓß∩, ¬«úñá «¡¿ »«½-
  678.          ¡δ, ¬«úñá »«Γ«¬¿ ºá¬αδóáεΓß∩ ¿½¿ »α«¿ßσ«ñ¿Γ ¡«α¼á½∞¡«Ñ ºáóÑαΦÑ¡¿Ñ
  679.          αáí«Γδ »α«úαá¼¼δ íѺ ºá¬αδΓ¿∩ »«Γ«¬«ó.
  680.  
  681.                Åα¿¼Ñα:
  682.             
  683.                #include <stdio.h>
  684.                int numopen;
  685.                .
  686.                .
  687.                .
  688.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α «ª¿ñáÑΓ ½εí«⌐ óó«ñ/óδó«ñ ó« óßÑ »«Γ«-
  689.          ¬¿ */
  690.                numopen=flushall();.
  691.       
  692.       
  693.                _FMALLOC
  694.             
  695.             
  696.                #include <malloc.h>          ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩  «íΩ∩ó½Ñ-
  697.                                             ¡¿∩  Σπ¡¬µ¿¿.
  698.                char far *_fmalloc(size);
  699.                unsigned size;               ¬«½¿τÑßΓó«  íá⌐Γ«ó ó ºáσóáτÑ¡-
  700.                                             ¡«¼ í½«¬Ñ.
  701.             
  702.                Ä»¿ßá¡¿Ñ.
  703.             
  704.                öπ¡¬µ¿∩  _fmalloc  ºáσóáΓδóáÑΓ  ó¡Ñ  π¼á½τ¿óáѼ«ú« ßÑú¼Ñ¡Γá
  705.          ñá¡¡δσ í½«¬ »á¼∩Γ¿, »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ¡Ñ ¼Ñ¡∞Φ¿⌐, τѼ í½«¬ ¿º  size
  706.          íá⌐Γ«ó.  (ü½«¬ ¼«ªÑΓ íδΓ∞ í«½∞ΦÑ, τѼ ¿º size íá⌐Γ«ó, »α¿¡áñ½Ñªá-
  707.          Θ¿σ »α«ßΓαá¡ßΓóπ, ¬«Γ«α«Ñ ΓαÑíπÑΓß∩ ñ½∩ óδαáó¡¿óá¡¿∩).
  708.  
  709.                                       - 106 -
  710.          
  711.          
  712.             
  713.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  714.             
  715.                öπ¡¬µ¿∩ _fmalloc ó«ºóαáΘáÑΓ far-π¬áºáΓѽ∞ ¡á char. é  »á¼∩-
  716.          Γ¿, ¡á ¬«Γ«απε π¬áºδóáÑΓ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ, úáαá¡Γ¿α«óá¡« óδ-
  717.          αáó¡¿óá¡¿Ñ  ñ½∩ σαá¡Ñ¡¿∩ ½εí«ú« Γ¿»á «íΩѬΓá. ùΓ«íδ »«½πτ¿Γ∞ π¬á-
  718.          ºáΓѽ∞ ¡á Γ¿», «Γ½¿τ¡δ⌐ «Γ char, ¿ß»«½∞ºπÑΓß∩ »αÑ«íαẫóáΓѽ∞ Γ¿-
  719.          »á ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩.
  720.                öπ¡¬µ¿∩ _fmalloc ó«ºóαáΘáÑΓ far-π¬áºáΓѽ∞ ¡á char. àß½¿ ó¡Ñ
  721.          π¼á½τ¿óáѼ«ú« ßÑú¼Ñ¡Γá ñá¡¡δσ »á¼∩Γ¿ ¡Ñ ñ«ßΓáΓ«τ¡«, Γ« ºáσóáΓ »á-
  722.          ¼∩Γ¿ íπñÑΓ »«óΓ«αÑ¡ ß¡«óá, ¿ß»«½∞ºπ∩ ¿ φëàßÑú¼Ñ¡Γ. àß½¿  »á¼∩Γ¿
  723.          ß¡«óá ¡Ññ«ßΓáΓ«τ¡«, ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ αáó¡« NULL.
  724.                æ¼.ΓᬪѠ_ffree, _fmsize, malloc, realloc.
  725.             
  726.                Åα¿¼Ñα:
  727.             
  728.                #include <malloc.h>
  729.                int *intarray;
  730.                /* ºáσóáΓδóáÑΓ »α«ßΓαá¡ßΓó« ñ½∩ 20 µÑ½δσ */
  731.                intarray=(int*)_fmalloc(20*sizeof(int));.
  732.       
  733.             
  734.                FMOD
  735.             
  736.             
  737.                #include <math.h>
  738.                double fmod(x,y);
  739.                double x; º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
  740.                double y;
  741.             
  742.                Ä»¿ßá¡¿Ñ.
  743.             
  744.                öπ¡¬µ¿∩  fmod óδτ¿ß½∩ÑΓ «ßΓáΓ«¬ «Γ ñѽѡ¿∩ x ¡á y ß »½áóáε-
  745.          ΘÑ⌐ Γ«τ¬«⌐, úñÑ x=iy+f, i - µÑ½«Ñ, f - ¿¼ÑÑàëàªÑ º¡á¬, τΓ«  x;
  746.          á áíß«½εΓ¡«Ñ º¡áτÑ¡¿Ñ x ¼Ñ¡∞ΦÑ, τѼ áíß«½εΓ¡«Ñ º¡áτÑ¡¿Ñ y.
  747.             
  748.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  749.             
  750.                öπ¡¬µ¿∩  fmod ó«ºóαáΘáÑΓ «ßΓáΓ«¬ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐. àß½¿ y
  751.          αáó¡« 0, Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ 0.
  752.                æ¼.ΓᬪѠceil, fabs, floor.
  753.             
  754.                Åα¿¼Ñα:
  755.             
  756.                #include <math.h>
  757.                double x,y,z;
  758.                x = -10.0;
  759.                y = 3.0;
  760.                z = fmod(x,y); /* z = -1.0 */.
  761.       
  762.       
  763.                _FMSIZE
  764.             
  765.             
  766.                #include <malloc.h>          ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩  «íΩ∩ó½Ñ-
  767.  
  768.                                       - 107 -
  769.          
  770.          
  771.                                             ¡¿∩  Σπ¡¬µ¿¿.
  772.                unsigned _fmsize(ptr);
  773.                char far *ptr;               π¬áºáΓѽ∞ ¡á í½«¬ »á¼∩Γ¿.
  774.             
  775.             
  776.                Ä»¿ßá¡¿Ñ.
  777.             
  778.                öπ¡¬µ¿∩  _fmsize  ó«ºóαáΘáÑΓ  αẼÑα ó íá⌐Γáσ í½«¬á »á¼∩Γ¿,
  779.          ºáσóáτÑ¡¡«ú« »«ßαÑñßΓó«¼ ó맮óá _fmalloc.
  780.             
  781.             
  782.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  783.             
  784.                öπ¡¬µ¿∩ _fmsize ó«ºóαáΘáÑΓ αẼÑα ó íá⌐Γáσ ¬á¬  íѺº¡á¬«ó«Ñ
  785.          µÑ½«Ñ.
  786.                æ¼.ΓᬪѠ  _ffree,   _fmalloc,   malloc,   _msize,  _nfree,
  787.          _nmalloc, _nmsize.
  788.             
  789.                Åα¿¼Ñα:
  790.             
  791.                #include <malloc.h>
  792.                #include <stdio.h>
  793.                main()
  794.                {
  795.                char far *stringarray;
  796.                stringarray=_fmalloc(200*sizeof(char));
  797.                if (stringarray != NULL)
  798.                    printf("%u bytes allocated\n",
  799.                        _fmsize(stringarray));
  800.                else
  801.                    printf("Allocation request failed.\n");
  802.                }
  803.       
  804.             
  805.                FOPEN
  806.             
  807.             
  808.                #include <stdio.h>
  809.                FILE *fopen(pathname, type);
  810.                char *pathname;              path-¿¼∩ Σá⌐½á.
  811.                char *type;                  αáºαÑΦÑ¡¡δ⌐ Γ¿» ñ«ßΓπ»á.
  812.             
  813.                Ä»¿ßá¡¿Ñ.
  814.             
  815.                öπ¡¬µ¿∩ fopen  «Γ¬αδóáÑΓ  Σá⌐½,  «»αÑñѽ∩Ѽδ⌐  path-¿¼Ñ¡Ñ¼.
  816.          æ¿¼ó«½δ  ó ßΓα«¬Ñ type «»αÑñѽ∩εΓ Γ¿» ñ«ßΓπ»á, ΓαÑíπѼδ⌐ ñ½∩ Σá⌐-
  817.          ½á, ß½ÑñπεΘ¿¼ «íαẫ¼.
  818.                 
  819.             Éàåêî                   ÄÅêæÇìêà
  820.                                                             
  821.             "r"          «Γ¬αδΓ∞ Σá⌐½ ñ½∩ τΓÑ¡¿∩.(¥Γ«Γ Σá⌐½ ñ«½ªÑ¡
  822.                          ßπΘÑßΓó«óáΓ∞).
  823.                                                             
  824.             "w"          «Γ¬αδΓ∞ »πßΓ«⌐ Σá⌐½ ñ½∩ ºá»¿ß¿; Ñß½¿ φΓ«Γ
  825.                          Σá⌐½  αá¡ÑÑ  ßπΘÑßΓó«óá½,  Ñú« ß«ñÑন¼«Ñ
  826.  
  827.                                       - 108 -
  828.          
  829.          
  830.                          π¡¿τΓ«ªáÑΓß∩.
  831.                          
  832.             "a"          «Γ¬αδΓ∞ Σá⌐½ ñ½∩  ºá»¿ß¿  (ñ«íáó½Ñ¡¿∩)  ó
  833.                          ¬«¡Ñµ. àß½¿ ñá¡¡«ú« Σá⌐½á ¡ÑΓ, Γ« ó¡áτá½Ñ
  834.                          «¡ ß«ºñáÑΓß∩.
  835.                          
  836.             "r+"         «Γ¬αδΓ∞ Σá⌐½ «ñ¡«óαѼѡ¡«  ñ½∩  τΓÑ¡¿∩  ¿
  837.                          ºá»¿ß¿. öá⌐½ ñ«½ªÑ¡ ßπΘÑßΓó«óáΓ∞.
  838.                          
  839.             "w+"         «Γ¬αδΓ∞  »πßΓ«⌐ Σá⌐½ ñ½∩ τΓÑ¡¿∩ ¿ ºá»¿ß¿.
  840.                          àß½¿ φëà Σá⌐½  αá¡ÑÑ  ßπΘÑßΓó«óá½,  Ñú«
  841.                          ß«ªÑন¼«Ñ π¡¿τΓ«ªáÑΓß∩.
  842.                          
  843.             "a+"         «Γ¬αδΓ∞  Σá⌐½  ñ½∩  τΓÑ¡¿∩ ¿  ñ«íáó½Ñ¡¿∩.
  844.                          àß½¿ Σá⌐½á ¡ÑΓ, ó¡áτá½Ñ «¡ ß«ºñáÑΓß∩.
  845.             
  846.                çá¼Ñτá¡¿Ñ! ìπª¡« ó¡¿¼áΓѽ∞¡« »α¿¼Ñ¡∩Γ∞  αѪ¿¼δ  "w",  "w+",
  847.          Γᬠ¬á¬ «¡¿ ¼«úπΓ π¡¿τΓ«ª¿Γ∞ ßπΘÑßΓóπεΘ¿Ñ Σá⌐½δ.
  848.                  
  849.                àß½¿ Σá⌐½ «Γ¬αδΓ »α¿ »«¼«Θ¿ Γ¿»á "a" ¿½¿ "a+", óßÑ «»Ñαᵿ¿
  850.          ºá»¿ß¿ óδ»«½¡∩εΓß∩ ó ¬«¡Ñµ Σá⌐½á. Åα¿ ¿ß»«½∞º«óá¡¿¿ Σπ¡¬µ¿⌐ fseek
  851.          ¿½¿ rewind  ó«º¼«ª¡« »ÑαÑ»«º¿µ¿«¡¿α«óá¡¿Ñ π¬áºáΓѽ∩ ¡á Σá⌐½; ¡Ñß-
  852.          ¼«Γα∩  ¡á φΓ«, π¬áºáΓѽ∞ ¡á Σá⌐½ »ÑαÑñ óδ»«½¡Ñ¡¿Ñ¼ ½εíδσ «»Ñαᵿ⌐
  853.          ºá»¿ß¿ óßÑúñá ó«ºóαáΘáÑΓß∩ ó ¬«¡Ñµ Σá⌐½á. Æá¬¿¼ «íαẫ¼,  ßπΘÑßΓ-
  854.          óπεΘ¿Ñ  ñá¡¡δÑ  ¡Ñ  íπñπΓ  »ÑαѺỿßá¡δ.  Åα¿ ¿ß»«½∞º«óá¡¿¿ Γ¿»«ó
  855.          "r+', "w+", "a+" ñ«»π߬áÑΓß∩ «ñ¡«óαѼѡ¡« τΓÑ¡¿Ñ ¿ ºá»¿ß∞. (â«ó«-
  856.          α¿Γß∩, τΓ« Σá⌐½ «Γ¬αδóáÑΓß∩ ñ½∩ «í¡«ó½Ñ¡¿∩). Å«φΓ«¼π, »α¿  »ÑαѬ-
  857.          ½ετÑ¡¿¿  τΓÑ¡¿∩  ¡á ºá»¿ß∞ ¿ ¡á«í«α«Γ  ¡πª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿
  858.          fseek ¿½¿ rewind. ä½∩ Σπ¡¬µ¿¿  fseek  (»α¿  ¡Ñ«íσ«ñ¿¼«ßΓ¿)  ¼«ªÑΓ
  859.          íδΓ∞ Γ«τ¡« «»αÑñѽѡá ΓѬπΘá∩ »«º¿µ¿∩.
  860.                ä«»«½¡¿Γѽ∞¡«  ¬  º¡áτÑ¡¿∩¼, «»¿ßá¡¡δ¼ óδΦÑ, ¼«ªÑΓ íδΓ∞ ñ«-
  861.          íáó½Ñ¡ ó ßΓα«¬Ñ type «ñ¿¡ ¿º ß½ÑñπεΘ¿σ ß¿¼ó«½«ó, τΓ«íδ ß»Ñµ¿Σ¿µ¿-
  862.          α«óáΓ∞ ß»«ß«í »αÑ«íαẫóá¡¿∩ ß¿¼ó«½á ¡«ó«⌐ ßΓ᫬¿.
  863.       
  864.       
  865.             æ¿¼ó«½               ç¡áτÑ¡¿Ñ
  866.             
  867.               t          «Γ¬αδΓ∞   ó   ΓѬßΓ«ó«¼   (»αÑ«íαáºπεΘѼ)
  868.                          αѪ¿¼Ñ;  »α¿  óó«ñÑ  ¬«¼í¿¡áµ¿∩  "髺óαáΓ
  869.                          ¬áαÑΓ¬¿      -      »ÑαÑó«ñ       ßΓ᫬¿"
  870.                          »αÑ«íαẫóδóáÑΓß∩ ¬ Ññ¿¡ßΓóÑ¡¡«¼π ß¿¼ó«½π
  871.                          "»ÑαÑó«ñá  ßΓ᫬¿".  Åα¿  óδó«ñÑ   ß¿¼ó«½
  872.                          »ÑαÑó«ñá   ßΓ᫬¿   »αÑ«íαẫóδóáÑΓß∩   ó
  873.                          ¬«¼í¿¡áµ¿ε éè-Åæ.
  874.                          
  875.               b          «Γ¬αδΓ∞   ó   ñó«¿τ¡«¼  (¡Ñ»αÑ«íαáºπεΘѼ)
  876.                          αѪ¿¼Ñ; óδΦÑ «»¿ßá¡¡δÑ »αÑ«íαẫóá¡¿∩  ¡Ñ
  877.                          «ßπΘÑßΓó½∩εΓß∩.
  878.                          
  879.                          
  880.                àß½¿ t ¿½¿ b ó ßΓα«¬Ñ type ¡Ñ ºáñáÑΓß∩, αѪ¿¼  »αÑ«íαẫóá-
  881.          ¡¿∩  «»αÑñѽ∩ÑΓß∩ »ÑαѼѡ¡«⌐ _fmode ¿ αѪ¿¼«¼, πßΓá¡áó½¿óáÑ¼δ¼ »«
  882.          π¼«½τá¡¿ε.
  883.             
  884.       
  885.  
  886.                                       - 109 -
  887.          
  888.          
  889.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  890.             
  891.                öπ¡¬µ¿∩ fopen ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á «Γ¬αδΓδ⌐ Σá⌐½. ç¡áτÑ-
  892.          ¡¿Ñ π¬áºáΓѽ∩ NULL ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ.
  893.                æ¼.ΓᬪѠ fclose,  fcloseall,   fdopen,   ferror,   fileno,
  894.          freopen, open, setmode.
  895.             
  896.                Åα¿¼Ñα:
  897.             
  898.                #include <stdio.h>
  899.                main (argc, argv)
  900.                int argc;
  901.                char *argv[];
  902.                {
  903.                FILE *stream;
  904.                /*  »α¿¼Ñ¡Ñ¡¿Ñ  fopen  »«ºó«½∩ÑΓ «Γ¬αδΓ∞ Σá⌐½, ¿¼∩ ¬«Γ«α«ú«
  905.          σαá¡¿Γß∩ ó π¬áºáΓѽѠargv[argc-1]; Ñß½¿ φΓ« ¡Ñ πñáÑΓß∩, »α«úαá¼¼á
  906.          αáß»ÑτáΓδóáÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ */
  907.                if ((stream= fopen(argv[argc-1]), "r"))==NULL)
  908.                   { fprintf (stderr, "%s ¡Ñ ¼«ªÑΓ «Γ¬αδΓ∞ Σá⌐½ %s\n",
  909.                              argv[0], argv[argc-1]);
  910.                    exit(1);
  911.                }
  912.                /* çá¼Ñτá¡¿Ñ! ê¼∩ »α«úαá¼¼δ σαá¡¿Γß∩ ó argv[0]  Γ«½∞¬«  ñ½∩
  913.          óÑαß¿⌐  MS  DOS  3.0  ¿ »«ß½ÑñπεΘ¿σ; ó »αÑñδñπΘ¿σ óÑαß¿∩σ MS DOS,
  914.          argv[0] ß«ñÑনΓß∩ ó ßΓα«¬Ñ "æ¿" */
  915.                ÄíαáºÑµ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿:
  916.             
  917.                update employ.dat
  918.             
  919.                ìá óδσ«ñÑ íπñÑΓ ß««íΘÑ¡¿Ñ:
  920.             
  921.                "C:\BIN\UPDATE.EXE ¡Ñ ¼«ªÑΓ «Γ¬αδΓ∞ Σá⌐½ employ.dat ".
  922.                                      
  923.             
  924.                FP_OFF - FR_SEG
  925.             
  926.                #include <dos.h>
  927.                unsigned FP_OFF(longptr);
  928.                unsigned FP_SEG(lohgptr);
  929.                char far *longptr;          long-π¬áºáΓѽ∞ ¡á áñαÑß »á¼∩Γ¿.
  930.             
  931.                Ä»¿ßá¡¿Ñ.
  932.             
  933.                îá¬α« FP_OFF ¿ FP_SEG ¼«úπΓ  ¿ß»«½∞º«óáΓ∞ß∩  ß««ΓóÑΓßΓóÑ¡¡«
  934.          ñ½∩   πßΓᡫ󬿠 αáºóÑΓó½Ñ¡¿∩  ¿½¿  óº∩Γ¿∩  ßÑú¼Ñ¡Γá  »«ßαÑñßΓó«¼
  935.          long-π¬áºáΓѽ∩ longptr.
  936.             
  937.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  938.             
  939.                îá¬α« FP_OFF ó«ºóαáΘáÑΓ íѺº¡á¬«ó«Ñ µÑ½«Ñ º¡áτÑ¡¿Ñ,  »αÑñß-
  940.          Γáó½∩εΘÑÑ αáºóÑΓó½Ñ¡¿Ñ.
  941.                îá¬α«  FP_SEG ó«ºóαáΘáÑΓ íѺº¡á¬«ó«Ñ µÑ½«Ñ º¡áτÑ¡¿Ñ, »αÑñß-
  942.          Γá½∩εΘÑÑ áñαÑß ßÑú¼Ñ¡Γá.
  943.                æ¼.ΓᬪѠsegread.
  944.  
  945.                                       - 110 -
  946.          
  947.          
  948.             
  949.                Åα¿¼Ñα.
  950.             
  951.                #include <dos.h>
  952.             
  953.                char far *p;
  954.                unsigned int seg_val;
  955.                unsigned int off_val;
  956.                .
  957.                .
  958.                .
  959.                seg_val=FP_SEG(p);
  960.                off_val=FP_OFF(p);
  961.                 
  962.  
  963.                                      
  964.                _FPRESET
  965.             
  966.                #include <float.h>
  967.                void _fpreset();             »ÑαÑ¿¡¿µ¿á½¿º¿απÑΓ ¼áΓѼáΓ¿τÑ-
  968.                                             ß¬¿⌐ »á¬ÑΓ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
  969.             
  970.                Ä»¿ßá¡¿Ñ:
  971.             
  972.                öπ¡¬µ¿∩  _fpreset »ÑαÑ¿¡¿µ¿á½¿º¿απÑΓ ¼áΓѼáΓ¿τÑ߬¿⌐ »á¬ÑΓ ß
  973.          »½áóáεΘÑ⌐ Γ«τ¬«⌐. ¥Γá Σπ¡¬µ¿∩ «íδτ¡« ¿ß»«½∞ºπÑΓß∩  ß  »α«µÑñπαἿ
  974.          signal, system ¿½¿ ß ßѼÑ⌐ßΓó«¼ »α«µÑñπα exec, spawn.
  975.                àß½¿ »α«úαá¼¼á ó¼ÑßΓÑ ß Σπ¡¬µ¿Ñ⌐ signal ºáσóáΓδóáÑΓ ß¿ú¡á½δ
  976.          «Φ¿í«¬  ß  »½áóáεΘÑ⌐  Γ«τ¬«⌐ (SIGFPE), Γ« «¡á »α¿ ó맮óÑ _fpreset
  977.          í½áú«»«½πτ¡« ó«ßßΓá¡áó½¿óáÑΓß∩ ¿º «Φ¿í«¬ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ¿ óδ-
  978.          »«½¡∩ÑΓ longjmp.
  979.                
  980.                çá¼Ñτá¡¿Ñ!  é  óÑαß¿∩σ  MS  DOS,  í«½ÑÑ  αá¡¡¿σ  τѼ   4.0,
  981.          child-»α«µÑßß, óδ»«½¡¿¼δ⌐ ó exec, spawn ¿½¿ system, ¼«ªÑΓ ó«ºñÑ⌐-
  982.          ßΓó«óáΓ∞  ¡á  ß«ßΓ«∩¡¿Ñ  ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ parent-»α«µÑßßá, Ñß½¿
  983.          ¿ß»«½∞ºπÑΓß∩ 8087 ¿½¿ 80287 ß«»α«µÑßß«α. Å«φΓ«¼π, Ñß½¿  ¿ß»«½∞ºπ-
  984.          ÑΓß∩ ß«»α«µÑßß«α 8087 ½¿í« 80287, αѬ«¼Ñ¡ñπεΓß∩ »«¼¡¿Γ∞, τΓ«:
  985.                * exec, spawn, system ¡Ñ ¼«úπΓ óδºδóáΓ∞ß∩ ó »α«µÑßßÑ óδτ¿ß-
  986.          ½Ñ¡¿∩ óδαáªÑ¡¿∩ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐;
  987.                *  _fpreset  ñ«½ª¡á  íδΓ∞ óδºóá¡á »«ß½Ñ φΓ¿σ »α«µÑñπα, Ñß½¿
  988.          child-»α«µÑßß ¼«ªÑΓ óδ»«½¡¿Γ∞ ΓαÑíπѼπε «»Ñαᵿε.
  989.             
  990.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  991.             
  992.                é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  993.                æ¼.ΓᬪѠexecl, execle,  execlp,  execlpe,  execv,  execve,
  994.          execvp,  execvpe,  signal,  spawnl,  spawnle,  spawnlp, spawnlpe,
  995.          spawnv, spawnve, spawnvp, spawnvpe.
  996.             
  997.                Åα¿¼Ñα.
  998.             
  999.                #include <stdio.h>
  1000.                #include <signal.h>
  1001.                #include <setjmp.h>
  1002.                #include <float.h>
  1003.  
  1004.                                       - 111 -
  1005.          
  1006.          
  1007.             
  1008.                int fphandler ();
  1009.                jmp_buf mark;
  1010.                double a = 1.0, b = 0.0, c;
  1011.             
  1012.                main()
  1013.                {
  1014.                if(signal(SIGFPE, fphandler)==(int(*)())-1)
  1015.                    abort();
  1016.                if(setjmp(mark)==0)  {
  1017.                    c = a/b;
  1018.                    printf("Should never get here\n");
  1019.                    }
  1020.                printf("Recovered from floating-point error\n");
  1021.                }
  1022.             
  1023.                int fphandler(sig,num)
  1024.                int sig,num;
  1025.             
  1026.                {
  1027.                printf("signal=%d subcode =%d\n",sig,num);
  1028.                _fpreset();
  1029.                /* »ÑαÑ¿¡¿µ¿á½¿º¿απÑΓ »á¬ÑΓ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ */
  1030.                longjmp(mark,-1);
  1031.                }
  1032.  
  1033.                FPRINTF
  1034.             
  1035.                #include <stdio.h>
  1036.             
  1037.                int fprintf (stream, format-string [, argument ...]);
  1038.             
  1039.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1040.                                            
  1041.                char *format-string; ßΓ᫬á π»αáó½Ñ¡¿∩ Σ«α¼áΓ«¼.
  1042.             
  1043.                Ä»¿ßá¡¿Ñ:
  1044.                                              
  1045.                öπ¡¬µ¿∩ fprintf Σ«α¼áΓ¿απÑΓ ¿ »ÑτáΓáÑΓ ó óδσ«ñ¡«⌐ »«Γ«¬ ¡á-
  1046.          í«αδ ß¿¼ó«½«ó ¿ º¡áτÑ¡¿⌐. èáªñδ⌐ áαúπ¼Ñ¡Γ (Ñß½¿ «¡ ÑßΓ∞) »αÑ«íαá-
  1047.          ºπÑΓß∩ ¿ óδó«ñ¿Γß∩ ß«ú½áß¡« ºáñá¡¡«⌐ ß»Ñµ¿Σ¿¬áµ¿¿ Σ«α¼áΓá ó ßΓα«-
  1048.          ¬Ñ Σ«α¼áΓá. æΓ᫬á Σ«α¼áΓá (format-string) «í½áñáÑΓ Γ«⌐ ªÑ Σ«α¼«⌐
  1049.          ¿ Σπ¡¬µ¿Ñ⌐, τΓ« ¿ áαúπ¼Ñ¡Γ ßΓ᫬¿ Σ«α¼áΓá Σπ¡¬µ¿¿ printf.
  1050.             
  1051.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1052.             
  1053.                ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¬«½¿τÑßΓó« ¡á»ÑτáΓá¡¡δσ ß¿¼ó«½«ó.
  1054.                æ¼. ΓᬪѠcprintf, fscanf, printf, sprintf.
  1055.             
  1056.                Åα¿¼Ñα.
  1057.             
  1058.                #include <stdio.h>
  1059.                
  1060.                FILE *stream;
  1061.                int i = 10;
  1062.  
  1063.                                       - 112 -
  1064.          
  1065.          
  1066.                double fp = 1.5;
  1067.                char *s = "φΓ« ßΓ᫬á";
  1068.                char c = '\n';
  1069.             
  1070.                stream = fopen("result", "w");
  1071.             
  1072.                /* Σ«α¼áΓ¿α«óá¡¿Ñ ¿ »ÑτáΓ∞ αẽ¿τ¡δσ ñá¡¡δσ */
  1073.             
  1074.                fprintf (stream, "%s%c", s, c);
  1075.                /* »ÑτáΓ∞ óδαáªÑ¡¿∩ "φΓ« - ¡«óá∩ ßΓ᫬á", á  ºáΓѼ  ß¿¼ó«½á
  1076.          ¡«ó«⌐ ßΓ᫬¿ */
  1077.             
  1078.                fprintf (stream, "%d\n", i);
  1079.                /* »ÑτáΓ∞ τ¿ß½á 10, á ºáΓѼ ß¿¼ó«½á ¡«ó«⌐ ßΓ᫬¿ */
  1080.             
  1081.                fprintf (stream, "%f", fp);
  1082.                /* »ÑτáΓ∞ τ¿ß½á 1.500000 */
  1083.             
  1084.             
  1085.                FPUTC-FPUTCHAR.
  1086.                                                     
  1087.                #include <stdio.h>
  1088.                int fputc (c, stream); ºá»¿ßδóáÑΓ ß¿¼ó«½ ó »«Γ«¬ stream.
  1089.                int c; ºá»¿ßδóáѼδ⌐ ß¿¼ó«½.
  1090.             
  1091.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1092.  
  1093.                int fputchar (c); ºá»¿ßδóáÑΓ ß¿¼ó«½ ó »«Γ«¬ stdout.
  1094.                int c; ºá»¿ßδóáѼδ⌐ ß¿¼ó«½.
  1095.             
  1096.             
  1097.                Ä»¿ßá¡¿Ñ:
  1098.             
  1099.                öπ¡¬µ¿∩  fputc  ºá»¿ßδóáÑΓ  «Γñѽ∞¡δ⌐ ß¿¼ó«½ "ß" ó óδσ«ñ¡«⌐
  1100.          »«Γ«¬ stream. öπ¡¬µ¿∩ fputchar ∩ó½∩ÑΓß∩ φ¬ó¿óá½Ñ¡Γ¡«⌐  ¬  Σπ¡¬µ¿¿
  1101.          fputc(c, stream).
  1102.             
  1103.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1104.             
  1105.                ¥Γ¿  «íÑ Σπ¡¬µ¿¿ ó«ºóαáΘáεΓ ºá»¿ßá¡¡δ⌐ ß¿¼ó«½. é«ºóαáΘáѼ«Ñ
  1106.          º¡áτÑ¡¿Ñ EOF ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ; «ñ¡á¬«, »«ß¬«½∞¬π  º¡áτÑ-
  1107.          ¡¿Ñ  EOF ∩ó½∩ÑΓß∩ ΓᬪѠ¿ßΓ¿¡¡δ¼ µÑ½δ¼ º¡áτÑ¡¿Ñ¼, Γ« ñ½∩ »α«óÑન
  1108.          ß«ú½áΦÑ¡¿⌐ «í «Φ¿í¬Ñ ¿ß»«½∞ºπεΓ Σπ¡¬µ¿ε ferror.
  1109.                
  1110.                çá¼Ñτá¡¿Ñ! Åα«µÑñπαδ fputc  ¿  fputchar  ¿ñÑ¡Γ¿τ¡δ  putc  ¿
  1111.          putchar, ¡« «¡¿ ∩ó½∩εΓß∩ Σπ¡¬µ¿∩¼¿, á ¡Ñ ¼á¬α«.
  1112.                æ¼. ΓᬪѠfgetc, fgetchar, putc, putchar.
  1113.             
  1114.                Åα¿¼Ñα.
  1115.             
  1116.                #include <stdio.h>
  1117.             
  1118.                FILE *stream;
  1119.                char buffer[81];
  1120.                int i;
  1121.  
  1122.                                       - 113 -
  1123.          
  1124.          
  1125.                int ch;
  1126.  
  1127.                                      
  1128.                .
  1129.                .
  1130.                .
  1131.                /*  æ½ÑñπεΘ¿Ñ  «»ÑαáΓ«αδ ºá»¿ßδóáεΓ ß«ñÑন¼«Ñ íπΣÑαá ó »«-
  1132.          Γ«¬. çá¼ÑΓ¿¼, τΓ« óδó«ñ »αÑñßΓáó½Ñ¡ ¬á¬  »«í«τ¡δ⌐  φΣΣÑ¬Γ  ó¡πΓα¿
  1133.          óΓ«α«ú« óδαáªÑ¡¿∩, á ΓᬪѠΓѽ« «»ÑαáΓ«αá »πßΓ«. */
  1134.             
  1135.                for (i = 0; (i < 81) &&
  1136.                  ((ch = fputc(buffer[i], stream)) != EOF); i++)
  1137.                             ;
  1138.             
  1139.                /*  é  »α¿óÑñÑ¡¡«¼ óδΦÑ «»ÑαáΓ«αÑ ñ½∩ ºá»¿ß¿ íπΣÑαá ó »«Γ«¬
  1140.          stdout ¼«ª¡« í佫 íδ ¿ß»«½∞º«óáΓ∞ ó¼ÑßΓ« "fputc (stream)" Σπ¡¬µ¿ε
  1141.          "fputchar ()".*/
  1142.                                           
  1143.                
  1144.                FPUTS
  1145.             
  1146.                #include <stdio.h>
  1147.                int fputs  (string,  stream);  ºá»¿ßδóáÑΓ  ßΓ᫬e  ó  »«Γ«¬
  1148.          stream.
  1149.                char *string; óδó«ñ¿¼á∩ ßΓ᫬á.
  1150.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1151.                                                                                                                    
  1152.                Ä»¿ßá¡¿Ñ:
  1153.                                                                 
  1154.                öπ¡¬µ¿∩  fputs ¬«»¿απÑΓ ßΓ᫬π ó ¬«¡Ñµ »«Γ«¬á stream. ìπ½Ñ-
  1155.          ó«⌐ ß¿¼ó«½ «¬«¡τá¡¿∩ '\0' ¡Ñ ¬«»¿απÑΓß∩.
  1156.             
  1157.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1158.             
  1159.                öπ¡¬µ¿∩ fputs ó«ºóαáΘáÑΓ »«ß½Ññ¡¿⌐ ºá»¿ßá¡¡δ⌐ ß¿¼ó«½.  àß½¿
  1160.          óó«ñ¿¼á∩  ßΓ᫬á string »πßΓá∩, ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ 0. ç¡áτÑ¡¿Ñ
  1161.          EOF ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ.
  1162.                æ¼. ΓᬪѠfgets, gets, puts.
  1163.             
  1164.                Åα¿¼Ñα.
  1165.             
  1166.                #include <stdio.h>
  1167.                                                                   
  1168.                FILE *stream;
  1169.                int result;
  1170.                .
  1171.                .
  1172.                .
  1173.                /* æ½ÑñπεΘ¿⌐ «»ÑαáΓ«α ºá»¿ßδóáÑΓ ßΓ᫬π ó »«Γ«¬ */
  1174.             
  1175.                result = fputs("Σá⌐½ ñá¡¡δσ ñ«½ªÑ¡ íδΓ∞ «í¡«ó½Ñ¡\n",stream).
  1176.  
  1177.  
  1178.  
  1179.  
  1180.                                       - 114 -
  1181.                
  1182.                FREAD
  1183.          
  1184.          
  1185.                #include <stdio.h>
  1186.                int fread (buffer, size, count, stream);
  1187.             
  1188.                char *buffer; »á¼∩Γ∞ ñ½∩ αẼÑΘÑ¡¿∩ ñá¡¡δσ.
  1189.                int size; αẼÑα ó íá⌐Γáσ.
  1190.                int count; ¼á¬ß¿¼á½∞¡«Ñ τ¿ß½« «íΩÑ¬Γ«ó ñ½∩ τΓÑ¡¿∩.
  1191.             
  1192.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1193.                                                                 
  1194.                Ä»¿ßá¡¿Ñ:
  1195.             
  1196.                äá¡¡á∩ Σπ¡¬µ¿∩ τ¿ΓáÑΓ  «íΩѬΓδ  αẼÑαá  size  »«  ßτÑΓτ¿¬π
  1197.          count ¿º óσ«ñ¡«ú« »«Γ«¬á stream ¿ αáß»«½áúáÑΓ ¿σ ó íπΣÑαÑ buffer.
  1198.          ô¬áºáΓѽ∞  ¡á  Σá⌐½,  ßó∩ºá¡¡δ⌐  ß »«Γ«¬«¼ stream (Ñß½¿ «¡ ÑßΓ∞),
  1199.          πóѽ¿τ¿óáÑΓß∩ ¡á τ¿ß½« »α«τ¿Γá¡¡δσ íá⌐Γ«ó. àß½¿  óδíαá¡¡δ⌐  »«Γ«¬
  1200.          «Γ¬αδΓ  ó  ΓѬßΓ«ó«¼  αѪ¿¼Ñ,  ¬«¼í¿¡áµ¿∩ "éè - Åæ" ºá¼Ñ¡∩ÑΓß∩ ¡á
  1201.          ß¿¼ó«½ "Åæ". ¥Γá ºá¼Ñ¡á ¡Ñ ó½¿∩ÑΓ ¡¿ ¡á π¬áºáΓѽ∞ ¡á Σá⌐½, ¡¿  ¡á
  1202.          ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  1203.             
  1204.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1205.             
  1206.                öπ¡¬µ¿∩  fread  ó«ºóαáΘáÑΓ  τ¿ß½« ñÑ⌐ßΓó¿Γѽ∞¡« »α«τ¿Γá¡¡δσ
  1207.          «íΩÑ¬Γ«ó, ¬«Γ«α«Ñ ¼Ñ¡∞ΦÑ, τѼ count,  Ñß½¿  »α¿  τΓÑ¡¿¿  ó«º¡¿¬½á
  1208.          «Φ¿í¬á ¿½¿ óßΓαÑΓ¿½ß∩ ¬«¡Ñµ Σá⌐½á.
  1209.                æ¼. ΓᬪѠfwrite, read.
  1210.             
  1211.                Åα¿¼Ñα:
  1212.             
  1213.                #include <stdio.h>
  1214.                                                                
  1215.                FILE *stream;
  1216.                long list[100];
  1217.                int numread;
  1218.             
  1219.                stream = fopen("data", "r+b");
  1220.             
  1221.                /*  ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α »«ºó«½∩ÑΓ ßτ¿ΓáΓ∞ 100 ñó«¿τ¡δσ ñ½¿¡-
  1222.          ¡δσ µÑ½δσ ¿º »«Γ«¬á stream */
  1223.             
  1224.                numread = fread((char *)list, sizeof(long), 100, stream);.
  1225.  
  1226.             
  1227.                FREE
  1228.             
  1229.                #include <maloc.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿.
  1230.             
  1231.                void free(ptr);
  1232.                char *ptr; π¬áºáΓѽ∞ ¡á ºáσóáτÑ¡¡δ⌐ í½«¬ »á¼∩Γ¿.
  1233.             
  1234.                Ä»¿ßá¡¿Ñ:
  1235.             
  1236.                öπ¡¬µ¿∩ free «ßó«í«ªñáÑΓ í½«¬ »á¼∩Γ¿. Çαúπ¼Ñ¡Γ ptr π¬áºδóá-
  1237.          ÑΓ ¡á αá¡ÑÑ ºáσóáτÑ¡¡δ⌐ í½«¬ »á¼∩Γ¿  »«ßαÑñßΓó«¼  ó맮óá  calloc,
  1238.          malloc,  realloc. ù¿ß½«¼ «ßó«í«ªñÑ¡¡δσ íá⌐Γ«ó ∩ó½∩ÑΓß∩ τ¿ß½« íá⌐-
  1239.          Γ«ó, «»αÑñѽѡ¡δσ »α¿ ºáσóáΓÑ í½«¬á (¿½¿ »ÑαѺáσóáΓÑ). Å«ß½Ñ  óδ-
  1240.  
  1241.                                       - 115 -
  1242.          
  1243.          
  1244.          º«óá «ßó«í«ñ¿óΦ¿⌐ß∩ í½«¬ ñ«ßΓπ»Ñ¡ ñ½∩ ºáσóáΓá.
  1245.             
  1246.  
  1247.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1248.             
  1249.                é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  1250.                æ¼.ΓᬪѠcalloc, malloc, realloc.
  1251.             
  1252.                çá¼Ñτá¡¿Ñ!  Å«»δΓ¬á  «ßó«í«ñ¿Γ∞  ¡ÑóÑα¡δ⌐ ptr (π¬áºáΓѽ∞ ¡Ñ
  1253.          ºáσóáΓδóáÑΓß∩ »«ßαÑñßΓó«¼ ó맮óá calloc, malloc ¿½¿ realloc)  ¼«-
  1254.          ªÑΓ »α¿óÑßΓ¿ ¬ ß½ÑñπεΘѼπ ºáσóáΓπ ¿ óδºóáΓ∞ «Φ¿í¬π.
  1255.             
  1256.                Åα¿¼Ñα.
  1257.             
  1258.                #include <malloc.h>
  1259.                #include <stdio.h>
  1260.             
  1261.                char *alloc;
  1262.             
  1263.                /* ºáσóáΓδóáÑΓ 100 íá⌐Γ«ó ¿ «ßó«í«ªñáÑΓ ¿σ */
  1264.             
  1265.                if ((alloc=malloc(100))==NULL
  1266.             
  1267.                /* »α«óÑα∩ÑΓ ¡á »αáó¿½∞¡«ßΓ∞ π¬áºáΓѽ∩ */
  1268.             
  1269.                printf("unable to allocate memory\n");
  1270.                else {
  1271.                .
  1272.                .
  1273.                .
  1274.                free(alloc);
  1275.             
  1276.                /* «ßó«í«ªñáÑΓ »á¼∩Γ∞ ñ½∩ heap */
  1277.             
  1278.                }
  1279.             
  1280.             
  1281.                _FREECT
  1282.             
  1283.                #include  <malloc.h>  ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩ Σπ¡¬-
  1284.          µ¿¿.
  1285.             
  1286.                unsigned int _freect(size);
  1287.                unsigned int size; αẼÑα «íΩѬΓá ó íá⌐Γáσ.
  1288.             
  1289.             
  1290.                Ä»¿ßá¡¿Ñ:
  1291.             
  1292.                öπ¡¬µ¿∩ _freect ß««íΘáÑΓ « ¬«½¿τÑßΓóÑ »á¼∩Γ¿, »α¿ú«ñ¡«⌐ ñ½∩
  1293.          αẼÑΘÑ¡¿∩ ñ¿¡á¼¿τÑ߬«⌐ »á¼∩Γ¿, ¿ ó«ºóαáΘáÑΓ »α¿í½¿º¿Γѽ∞¡«Ñ  ¬«-
  1294.          ½¿τÑßΓó« ó맮ó«ó ó »α«úαἼѠmalloc ñ½∩ αẼÑΘÑ¡¿∩ «íΩѬΓá ºáñá¡-
  1295.          ¡«ú« αẼÑαá ó π¼á½τ¿óáѼ«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ.
  1296.             
  1297.             
  1298.  
  1299.                                       - 116 -
  1300.                
  1301.                
  1302.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1303.          
  1304.                öπ¡¬µ¿∩ _freect ó«ºóαáΘáÑΓ τ¿ß½«  ó맮ó«ó  ¬á¬  íѺº¡á¬«ó«Ñ
  1305.          µÑ½«Ñ.
  1306.                æ¼.ΓᬪѠcalloc, _expand, malloc, _memavl, _msize, realloc.
  1307.             
  1308.             
  1309.                Åα¿¼Ñα.
  1310.             
  1311.                main()
  1312.                {
  1313.                int i;
  1314.                printf("Approximate # of times program can call
  1315.                      malloc\n");
  1316.                printf("to allocate a single integer=%u\n\n",
  1317.                      _freect(sizeof(int)));
  1318.             
  1319.                /*  óδºδóáÑΓ 1000 αẠmalloc, αẼÑΘá∩ ¬áªñδ⌐ αẠ«Γñѽ∞¡«Ñ
  1320.          µÑ½«Ñ */
  1321.             
  1322.                for (i=0; i<1000; ++i)
  1323.                malloc(sizeof(int));
  1324.             
  1325.                printf("Approximate # of times program can call
  1326.                      malloc\n");
  1327.                printf("to allocate a single integer=%u\n",
  1328.                      _freect(sizeof(int)));
  1329.             
  1330.                }
  1331.             
  1332.             
  1333.                FREOPEN
  1334.             
  1335.                #include <stdio.h>
  1336.                FILE *freopen (pathname, type, stream);
  1337.             
  1338.                char *pathname; path-¿¼∩ ¡«ó«ú« Σá⌐½á.
  1339.                char *type; αáºαÑΦÑ¡¡δ⌐ Γ¿» ñ«ßΓπ»á.
  1340.                                                                
  1341.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1342.                                                                
  1343.  
  1344.                Ä»¿ßá¡¿Ñ:
  1345.                                                                
  1346.                öπ¡¬µ¿∩ freopen ºá¬αδóáÑΓ ΓѬπΘ¿⌐ Σá⌐½, ßó∩ºá¡¡δ⌐ ß »«Γ«¬«¼
  1347.          stream, ¿ »ÑαѡạáτáÑΓ φëà»«Γ«¬ ó Σá⌐½, «»αÑñѽ∩Ѽδ⌐ path-¿¼Ñ-
  1348.          ¡Ñ¼. ¥Γá Σπ¡¬µ¿∩ «íδτ¡« »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ »ÑαÑáñαÑßᵿ¿  »αÑñ«Γ¬αδ-
  1349.          Γδσ  »«Γ«¬«ó stdin, stdout, stderr, stdaux, stdprn ó Σá⌐½δ, «»αÑ-
  1350.          ñѽ∩ѼδÑ »«½∞º«óáΓѽѼ. ì«óδ⌐ Σá⌐½, ßó∩ºá¡¡δ⌐ ß »«Γ«¬«¼, «Γ¬αδóá-
  1351.          ÑΓß∩ ó αѪ¿¼Ñ type, ¬«Γ«αδ⌐ «»αÑñѽѡ ß½ÑñπεΘ¿¼ «íαẫ¼:
  1352.  
  1353.       
  1354.             ÆêÅ                   ÄÅêæÇìêà
  1355.                                                             
  1356.             "r"          «Γ¬αδΓ∞ Σá⌐½ ñ½∩ τΓÑ¡¿∩.(¥Γ«Γ Σá⌐½ ñ«½ªÑ¡
  1357.                          ßπΘÑßΓó«óáΓ∞).
  1358.                                                             
  1359.  
  1360.                                       - 117 -
  1361.          
  1362.          
  1363.             "w"          «Γ¬αδΓ∞ »πßΓ«⌐ Σá⌐½ ñ½∩ ºá»¿ß¿; Ñß½¿ φΓ«Γ
  1364.                          Σá⌐½  αá¡ÑÑ  ßπΘÑßΓó«óá½,  Ñú« ß«ñÑন¼«Ñ
  1365.                          π¡¿τΓ«ªáÑΓß∩.
  1366.                          
  1367.             "a"          «Γ¬αδΓ∞ Σá⌐½ ñ½∩  ºá»¿ß¿  (ñ«íáó½Ñ¡¿∩)  ó
  1368.                          ¬«¡Ñµ. àß½¿ ñá¡¡«ú« Σá⌐½á ¡ÑΓ, Γ« ó¡áτá½Ñ
  1369.                          «¡ ß«ºñáÑΓß∩.
  1370.                          
  1371.             "r+"         «Γ¬αδΓ∞ Σá⌐½ «ñ¡«óαѼѡ¡«  ñ½∩  τΓÑ¡¿∩  ¿
  1372.                          ºá»¿ß¿. öá⌐½ ñ«½ªÑ¡ ßπΘÑßΓó«óáΓ∞.
  1373.                          
  1374.             "w+"         «Γ¬αδΓ∞  »πßΓ«⌐ Σá⌐½ ñ½∩ τΓÑ¡¿∩ ¿ ºá»¿ß¿.
  1375.                          àß½¿ φëà Σá⌐½  αá¡ÑÑ  ßπΘÑßΓó«óá½,  Ñú«
  1376.                          ß«ªÑন¼«Ñ π¡¿τΓ«ªáÑΓß∩.
  1377.                          
  1378.             "a+"         «Γ¬αδΓ∞  Σá⌐½  ñ½∩  τΓÑ¡¿∩ ¿  ñ«íáó½Ñ¡¿∩.
  1379.                          àß½¿ Σá⌐½á ¡ÑΓ, ó¡áτá½Ñ «¡ ß«ºñáÑΓß∩.
  1380.             
  1381.                çá¼Ñτá¡¿Ñ! ìπª¡« ó¡¿¼áΓѽ∞¡« »α¿¼Ñ¡∩Γ∞  αѪ¿¼δ  "w",  "w+",
  1382.          Γᬠ¬á¬ «¡¿ ¼«úπΓ π¡¿τΓ«ª¿Γ∞ ßπΘÑßΓóπεΘ¿Ñ Σá⌐½δ.
  1383.             
  1384.                àß½¿ Σá⌐½ «Γ¬αδΓ »α¿ »«¼«Θ¿ Γ¿»á "a" ¿½¿ "a+", óßÑ «»Ñαᵿ¿
  1385.          ºá»¿ß¿ óδ»«½¡∩εΓß∩ ó ¬«¡Ñµ Σá⌐½á. Åα¿ ¿ß»«½∞º«óá¡¿¿ Σπ¡¬µ¿⌐ fseek
  1386.          ¿½¿ rewind  ó«º¼«ª¡« »ÑαÑ»«º¿µ¿«¡¿α«óá¡¿Ñ π¬áºáΓѽ∩ ¡á Σá⌐½; ¡Ñß-
  1387.          ¼«Γα∩  ¡á φΓ«, π¬áºáΓѽ∞ ¡á Σá⌐½ »ÑαÑñ óδ»«½¡Ñ¡¿Ñ¼ ½εíδσ «»Ñαᵿ⌐
  1388.          ºá»¿ß¿ óßÑúñá ó«ºóαáΘáÑΓß∩ ó ¬«¡Ñµ Σá⌐½á. Æá¬¿¼ «íαẫ¼,  ßπΘÑßΓ-
  1389.          óπεΘ¿Ñ  ñá¡¡δÑ  ¡Ñ  íπñπΓ  »ÑαѺỿßá¡δ.  Åα¿ ¿ß»«½∞º«óá¡¿¿ Γ¿»«ó
  1390.          "r+', "w+", "a+" ñ«»π߬áÑΓß∩ «ñ¡«óαѼѡ¡« τΓÑ¡¿Ñ ¿ ºá»¿ß∞. (â«ó«-
  1391.          α¿Γß∩, τΓ« Σá⌐½ «Γ¬αδóáÑΓß∩ ñ½∩ «í¡«ó½Ñ¡¿∩). Å«φΓ«¼π  »α¿  »ÑαѬ-
  1392.          ½ετÑ¡¿¿  τΓÑ¡¿∩  ¡á ºá»¿ß∞ ¿ ¡á«í«α«Γ  ¡πª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿
  1393.          fseek ¿½¿ rewind. ä½∩ Σπ¡¬µ¿¿  fseek  (»α¿  ¡Ñ«íσ«ñ¿¼«ßΓ¿)  ¼«ªÑΓ
  1394.          íδΓ∞ Γ«τ¡« «»αÑñѽѡá ΓѬπΘá∩ »«º¿µ¿∩.
  1395.                ä«»«½¡¿Γѽ∞¡«  ¬  º¡áτÑ¡¿∩¼, «»¿ßá¡¡δ¼ óδΦÑ, ¼«ªÑΓ íδΓ∞ ñ«-
  1396.          íáó½Ñ¡ ó ßΓα«¬Ñ type «ñ¿¡ ¿º ß½ÑñπεΘ¿σ ß¿¼ó«½«ó, τΓ«íδ ß»Ñµ¿Σ¿µ¿-
  1397.          α«óáΓ∞ ß»«ß«í »αÑ«íαẫóá¡¿∩ ß¿¼ó«½á ¡«ó«⌐ ßΓ᫬¿.
  1398.             
  1399.             æ¿¼ó«½               ç¡áτÑ¡¿Ñ
  1400.             
  1401.               t          «Γ¬αδΓ∞   ó   ΓѬßΓ«ó«¼   (»αÑ«íαáºπεΘѼ)
  1402.                          αѪ¿¼Ñ;  »α¿  óó«ñÑ  ¬«¼í¿¡áµ¿∩  "髺óαáΓ
  1403.                          ¬áαÑΓ¬¿      -      »ÑαÑó«ñ       ßΓ᫬¿"
  1404.                          »αÑ«íαẫóδóáÑΓß∩ ¬ Ññ¿¡ßΓóÑ¡¡«¼π ß¿¼ó«½π
  1405.                          "»ÑαÑó«ñá  ßΓ᫬¿".  Åα¿  óδó«ñÑ   ß¿¼ó«½
  1406.                          »ÑαÑó«ñá   ßΓ᫬¿   »αÑ«íαẫóδóáÑΓß∩   ó
  1407.                          ¬«¼í¿¡áµ¿ε éè-Åæ.
  1408.                          
  1409.               b          «Γ¬αδΓ∞   ó   ñó«¿τ¡«¼  (¡Ñ»αÑ«íαáºπεΘѼ)
  1410.                          αѪ¿¼Ñ; óδΦÑ «»¿ßá¡¡δÑ »αÑ«íαẫóá¡¿∩  ¡Ñ
  1411.                          «ßπΘÑßΓó½∩εΓß∩.
  1412.                          
  1413.                àß½¿ t ¿½¿ b ó ßΓα«¬Ñ type ¡Ñ ºáñáÑΓß∩, αѪ¿¼  »αÑ«íαẫóá-
  1414.          ¡¿∩  «»αÑñѽ∩ÑΓß∩ »ÑαѼѡ¡«⌐ _fmode ¿ αѪ¿¼«¼, πßΓá¡áó½¿óáÑ¼δ¼ »«
  1415.          π¼«½τá¡¿ε.
  1416.             
  1417.             
  1418.  
  1419.                                       - 118 -
  1420.          
  1421.          
  1422.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1423.             
  1424.                öπ¡¬µ¿∩ freopen  ó«ºóαáΘáÑΓ  π¬áºáΓѽ∞  ¡á  ó¡«ó∞  «Γ¬αδΓδ⌐
  1425.          Σá⌐½.  àß½¿  ó«º¡¿¬½á «Φ¿í¬á, »αѪ¡¿⌐ Σá⌐½ ºá¬αδóáÑΓß∩  ¿ Σπ¡¬µ¿∩
  1426.          ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ π¬áºáΓѽ∩ NULL.
  1427.                æ¼. ΓᬪѠfclose, fcloseall, fdopen, fileno,  fopen,  open,
  1428.          setmode.
  1429.             
  1430.                Åα¿¼Ñα.
  1431.             
  1432.                #include <stdio.h>
  1433.             
  1434.                FILE *stream;
  1435.                .
  1436.                .
  1437.                .
  1438.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ºá¬αδóáÑΓ »«Γ«¬ stdout ¿ »Ñαѡạáτá-
  1439.          ÑΓ φëà»«Γ«¬ π¬áºáΓÑ½ε »«Γ«¬á. */
  1440.             
  1441.                stream = freopen ("data2", "w+", stdout);.
  1442.                                                                 
  1443.                
  1444.                FREXP
  1445.             
  1446.                #include <math.h>
  1447.             
  1448.                double frext(x,expptr);
  1449.                double x; º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
  1450.                int *expptr; π¬áºáΓѽ∞ ¡á µÑ½πε φ¬ß»«¡Ñ¡Γπ.
  1451.             
  1452.                Ä»¿ßá¡¿Ñ:
  1453.             
  1454.                öπ¡¬µ¿∩  frexp  αáºαδóáÑΓ  º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ x ¡á
  1455.          ¼á¡Γ¿ßßπ m ¿ φ¬ß»«¡Ñ¡Γπ n, ΓᬠτΓ« áíß«½εΓ¡«Ñ º¡áτÑ¡¿Ñ  m  í«½∞ΦÑ
  1456.          ¿½¿  αáó¡« 0.5 ¿ ¼Ñ¡∞ΦÑ 10 ¿ x αáóÑ¡ m, π¼¡«ªÑ¡¡πε ¡á 2 ó ßΓѻѡ¿
  1457.          n. ûѽ«Ñ º¡áτÑ¡¿Ñ φ¬ß»«¡Ñ¡Γδ n σαá¡¿Γß∩ ó αáß»«½«ªÑ¡¿¿, π¬áºá¡¡«¼
  1458.          »« expptr.
  1459.             
  1460.             
  1461.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1462.            
  1463.                öπ¡¬µ¿∩ frext ó«ºóαáΘáÑΓ ¼á¡Γ¿ßßπ m. àß½¿ x αáóÑ¡ 0,  Σπ¡¬-
  1464.          µ¿∩  ó«ºóαáΘáÑΓ 0 ñ½∩ ¼á¡Γ¿ßßδ ¿ φ¬ß»«¡Ñ¡Γδ. é«ºóαáΘáѼ«ú« º¡áτÑ-
  1465.          ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  1466.                æ¼.ΓᬪѠldex, modf.
  1467.             
  1468.                Åα¿¼Ñα.
  1469.             
  1470.                #include <math.h>
  1471.             
  1472.                double x,y;
  1473.                int n;
  1474.                .
  1475.                .
  1476.                .
  1477.  
  1478.                                       - 119 -
  1479.          
  1480.          
  1481.                x = 16.4;
  1482.                /* y íπñÑΓ αáóÑ¡ .5125, n íπñÑΓ αáó¡« 5 */
  1483.                y = frexp(x,&n);
  1484.             
  1485.             
  1486.                FSCANF.
  1487.             
  1488.                #include <stdio.h>
  1489.                int fscanf (stream, format-string [, argument ...]);
  1490.                                                                   
  1491.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1492.                char *format-string; ßΓ᫬á π»αáó½Ñ¡¿∩ Σ«α¼áΓ«¼.
  1493.                                                                   
  1494.                Ä»¿ßá¡¿Ñ:
  1495.             
  1496.                öπ¡¬µ¿∩ fscanf ßτ¿ΓδóáÑΓ ñá¡¡δÑ ¿º ΓѬπΘÑ⌐  »«º¿µ¿¿  »«Γ«¬á
  1497.          stream  ó ¼ÑßΓ«, «»αÑñѽ∩Ѽ«Ñ ºáñ᡿Ѽ áαúπ¼Ñ¡Γ«ó arguments (Ñß½¿
  1498.          «¡¿ ÑßΓ∞).
  1499.                èáªñδ⌐ áαúπ¼Ñ¡Γ ñ«½ªÑ¡ íδΓ∞ π¬áºáΓѽѼ ¡á »ÑαѼѡ¡πε ¿ Γ¿»,
  1500.          ¬«Γ«αδÑ ß««ΓóÑΓßΓóπεΓ Γ¿»π, ºáñá¡¡«¼π ó  ßΓα«¬Ñ  Σ«α¼áΓá.  æΓ᫬á
  1501.          Σ«α¼áΓá  π»αáó½∩ÑΓ ¿¡ΓÑα»αÑΓᵿÑ⌐ »«½Ñ⌐ óó«ñá ¿ ¿¼ÑÑΓ Γπ ªÑ ßá¼πε
  1502.          Σ«α¼π ¿ ¡áº¡áτÑ¡¿Ñ, τΓ« ¿ áαúπ¼Ñ¡Γ  ßΓ᫬¿  Σ«α¼áΓá  ñ½∩  Σπ¡¬µ¿¿
  1503.          scanf. (Ä»¿ßá¡¿Ñ Σπ¡¬µ¿¿ scanf »α¿ó«ñ¿Γß∩ ¡¿ªÑ ó ñá¡¡«⌐ τáßΓ¿ απ-
  1504.          ¬«ó«ñßΓóá).
  1505.  
  1506.                                      
  1507.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1508.             
  1509.                äá¡¡á∩  Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ  τ¿ß½« πñáτ¡« »αÑ«íαẫóá¡¡δσ ¿
  1510.          »αáó¿½∞¡« ¡áº¡áτÑ¡¡δσ »«½Ñ⌐. é«ºóαáΘáѼ«Ñ  º¡áτÑ¡¿Ñ  ¡Ñ  ó¬½ετáÑΓ
  1511.          »«½Ñ⌐,  »α«τ¿Γá¡¡δσ,  ¡«  ¡Ñ  ¡áº¡áτÑ¡¡δσ. Åα¿ »«»δΓ¬Ñ ßτ¿Γδóá¡¿∩
  1512.          ¬«¡µá Σá⌐½á  ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ EOF. é«ºóαáΘáѼ«Ñ  º¡áτÑ¡¿Ñ  0
  1513.          «í«º¡áτáÑΓ, τΓ« ¡ÑΓ ¡áº¡áτÑ¡¡δσ »«½Ñ⌐.
  1514.                æ¼. ΓᬪѠcscanf, fprintf, scanf, sscanf.
  1515.             
  1516.             
  1517.                Åα¿¼Ñα.
  1518.             
  1519.                #include <stdio.h>
  1520.             
  1521.                FILE *stream;
  1522.                long l;
  1523.                float fp;
  1524.                char s[81];
  1525.                char c;
  1526.             
  1527.                stream = fopen ("data", "r");
  1528.                .
  1529.                .
  1530.                .
  1531.                /* óó«ñ αẽ¿τ¡δσ ñá¡¡δσ */
  1532.             
  1533.                fscanf (stream, "%s", s);
  1534.             
  1535.                fscanf (stream, "%c", &c);
  1536.  
  1537.                                       - 120 -
  1538.          
  1539.          
  1540.             
  1541.                fscanf (stream, "%ld", &l);
  1542.             
  1543.                fscanf (stream, "%f", &fp);.
  1544.             
  1545.             
  1546.                FSEEK.
  1547.  
  1548.                #include <stdio.h>
  1549.                int fseek (stream, offset, origin);
  1550.                                                                                                                       
  1551.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1552.                                                                 
  1553.                long offset; τ¿ß½« íá⌐Γ«ó «Γ origin.
  1554.                int origin; ¡áτá½∞¡á∩ »«º¿µ¿∩.
  1555.                                                                                                                       
  1556.                Ä»¿ßá¡¿Ñ:
  1557.                                                                 
  1558.                öπ¡¬µ¿∩  fseek »ÑαѼÑΘáÑΓ π¬áºáΓѽ∞, ß««ΓóÑΓßΓóπεΘ¿⌐ »«Γ«¬π
  1559.          stream, ¡á ¡«ó«Ñ  ¼ÑßΓ«  αáß»«½«ªÑ¡¿∩,  «ΓßΓ«∩ΘÑÑ  «Γ  origin  ¡á
  1560.          offset  íá⌐Γ«ó. æ½ÑñπεΘá∩ «»Ñαᵿ∩ ó »«Γ«¬Ñ óδ»«½¡∩ÑΓß∩ ¡áñ ¡«óδ¼
  1561.          ¼ÑßΓ«αáß»«½«ªÑ¡¿Ñ¼.
  1562.                àß½¿ »«Γ«¬ «Γ¬αδΓ ñ½∩ «í¡«ó½Ñ¡¿∩,  Γ«  ß½ÑñπεΘÑ⌐  «»ÑαᵿÑ⌐
  1563.          íπñÑΓ ½¿í« τΓÑ¡¿Ñ, ½¿í« ºá»¿ß∞.
  1564.                Çαúπ¼Ñ¡Γ origin ¼«ªÑΓ íδΓ∞ «ñ¡«⌐ ¿º ß½ÑñπεΘ¿σ ¬«¡ßΓá¡Γ, «»-
  1565.          αÑñѽѡ¡δσ ó <stdio.h>.
  1566.             
  1567.                 
  1568.             ORIGIN                ÄÅÉàäàïàìêà
  1569.           (¿ßΓ«τ¡¿¬, ¡áτὫ)
  1570.             
  1571.             SEEK-SET              ¡áτὫ Σá⌐½á.
  1572.             
  1573.             SEEK-CUR              ΓѬπΘá∩ »«º¿µ¿∩ π¬áºáΓѽ∩ ¡á
  1574.                                   Σá⌐½.
  1575.             
  1576.             SEEK-END              ¬«¡Ñµ Σá⌐½á.
  1577.  
  1578.                öπ¡¬µ¿∩  fseek ¿ß»«½∞ºπÑΓß∩ ñ½∩ »ÑαѼÑΘÑ¡¿∩ π¬áºáΓѽ∩ ó ½ε-
  1579.          í«Ñ ¼ÑßΓ« Σá⌐½á. ô¬áºáΓѽ∞ ¼«ªÑΓ íδΓ∞ ΓᬪѠ αẼÑΘÑ¡  ºá  ¬«¡µ«¼
  1580.          Σá⌐½á.  Äñ¡á¬«,  »«»δΓ¬á  αáß»«½«ª¿Γ∞  π¬áºáΓѽ∞ ñ« ¡áτá½á  Σá⌐½á
  1581.          »α¿óÑñÑΓ ¬ «Φ¿í¬Ñ.
  1582.             
  1583.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1584.             
  1585.                öπ¡¬µ¿∩ fseek ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 0, Ñß½¿ π¬áºáΓѽ∞ πß»ÑΦ¡«
  1586.          »ÑαѼÑΘÑ¡. é ß½πτáÑ «Φ¿í¬¿  ó«ºóαáΘáÑΓß∩ ½εí«Ñ  ¡Ñ¡π½Ñó«Ñ  º¡áτÑ-
  1587.          ¡¿Ñ.  ä½∩  πßΓα«⌐ßΓó, ¡Ñ ß«ó¼ÑßΓ¿¼δσ ß «»ÑαᵿÑ⌐ seek, (Γᬿσ ¬á¬
  1588.          ΓÑନ¡á½ ¿ »ÑτáΓ∞), ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ ¡Ñ«»αÑñѽѡ«.
  1589.                æ¼. ΓᬪѠftell, lseek, rewind.
  1590.                
  1591.                çá¼Ñτá¡¿Ñ! ä½∩ »«Γ«¬«ó, «Γ¬αδΓδσ ó  ΓѬßΓ«ó«¼  (»αÑ«íαáºπε-
  1592.          ΘѼ)  αѪ¿¼Ñ, »α¿¼Ñ¡Ñ¡¿Ñ fseek ∩ó½∩ÑΓß∩ «úαá¡¿τÑ¡¡δ¼, Γ.¬. ¬«¼í¿-
  1593.          ¡áµ¿¿ éè - Åæ ¼«úπΓ ßΓáΓ∞ »α¿τ¿¡«⌐ óδαáí«Γ¬¿ ¡Ñ»αÑñó¿ñÑ¡¡«ú«  αÑ-
  1594.          ºπ½∞ΓáΓá.
  1595.  
  1596.                                       - 121 -
  1597.          
  1598.          
  1599.                ì¿ªÑ »α¿óÑñÑ¡δ «»Ñαᵿ¿ (ñÑ⌐ßΓó¿∩) fseek, úáαá¡Γ¿απεΘ¿Ñ αá-
  1600.          í«Γπ ß »«Γ«¬á¼¿, «Γ¬αδΓ묨 ó ΓѬßΓ«ó«¼ αѪ¿¼Ñ:
  1601.                * ß¼ÑΘÑ¡¿Ñ origin ¡á óѽ¿τ¿¡π offset, αáó¡πε ¡π½ε;
  1602.             
  1603.                *  ß¼ÑΘÑ¡¿Ñ  «Γ ¡áτá½á Σá⌐½á ¡á º¡áτÑ¡¿Ñ offset, »«½πτÑ¡¡«Ñ
  1604.          »«ß½Ñ ó맮óá Σπ¡¬µ¿¿ ftell.
  1605.             
  1606.                Åα¿¼Ñα.
  1607.             
  1608.                #include <stdio.h>
  1609.             
  1610.                FILE *stream;
  1611.                int result;
  1612.             
  1613.                stream = fopen("data", "r");
  1614.                .
  1615.                .
  1616.                .
  1617.                /* ß½ÑñπΘ¿⌐ «»ÑαáΓ«α ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á Σá⌐½ ¬  ¡áτá½π
  1618.          Σá⌐½á */
  1619.             
  1620.                result = fseek(stream, 0L, SEEK_SET);.
  1621.             
  1622.             
  1623.                FSTAT
  1624.             
  1625.             
  1626.                #include <sys\types.h>
  1627.                #include <sys\stat.h>
  1628.  
  1629.                int fstat(handle,buffer);
  1630.                int handle; handle-α, ßßδ½áεΘ¿⌐ß∩ ¡á «Γ¬αδΓδ⌐ Σá⌐½.
  1631.                struct  stat  *buffer; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ σαá¡Ñ¡¿∩  αÑ-
  1632.          ºπ½∞ΓáΓ«ó.
  1633.             
  1634.                Ä»¿ßá¡¿Ñ:
  1635.             
  1636.                öπ¡¬µ¿∩  fstat  »«½πτáÑΓ ¿¡Σ«α¼áµ¿ε «í «Γ¬αδΓ«¼ Σá⌐½Ñ, ßó∩-
  1637.          ºá¡¡δ¼ ß ñá¡¡δ¼ handle-α«¼, ¿ ºá»«¼¿¡áÑΓ ÑÑ ó ßΓαπ¬ΓπαÑ, ¡á ¬«Γ«-
  1638.          απε π¬áºδóáÑΓ buffer. æΓαπ¬Γπαá,  Γ¿»  stat  ¬«Γ«α«⌐  «íΩ∩ó½Ñ¡  ó
  1639.          <sys\stat.h>, ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ »«½∩:
  1640.             
  1641.  
  1642.            Å«½Ñ                              ç¡áτÑ¡¿Ñ
  1643.                                  
  1644.          st_mode           ü¿Γ«óá∩ ¼á߬á ñ½∩ ¿¡Σ«α¼áµ¿¿  «  αѪ¿¼Ñ
  1645.                            Σá⌐½á. ü¿Γ  S_IFCHR    πßΓá¡áó½¿óáÑΓß∩,
  1646.                            Ñß½¿  handle  ßßδ½áÑΓß∩ ¡á  πßΓα«⌐ßΓó«.
  1647.                            ü¿Γ    S_IFREG   πßΓá¡áó½¿óáÑΓß∩,  Ñß½¿
  1648.                            handle ßßδ½áÑΓß∩ ¡á «íδτ¡δ⌐ Σá⌐½.  ü¿Γδ
  1649.                            τΓÑ¡¿∩/ºá»¿ß¿  »«½∞º«óáΓѽÑ⌐ πßΓá¡áó½¿-
  1650.                            óáεΓß∩  ß««ΓóÑΓßΓóÑ¡¡«  αѪ¿¼π  ñ«ßΓπ»á
  1651.                            ñ½∩ Σá⌐½á.
  1652.             
  1653.          st_dev            ï¿í« ¡«¼Ñα πßΓα«⌐ßΓóá ñ¿ß¬á,ß«ñÑαªáΘÑú«
  1654.  
  1655.                                       - 122 -
  1656.          
  1657.          
  1658.                            Σá⌐½,  ½¿í«  handle - ó  ß½πτáÑ ñαπú«ú«
  1659.                            πßΓα«⌐ßΓóá.
  1660.                            
  1661.          st_rdev           ï¿í« ¡«¼Ñα πßΓα«⌐ßΓóá ñ¿ß¬á,ß«ñÑαªáΘÑú«
  1662.                            Σá⌐½,  ½¿í«  handle - ó  ß½πτáÑ ñαπú«ú«
  1663.                            πßΓα«⌐ßΓóá
  1664.                            (á¡á½«ú¿τ¡« st_dev).
  1665.                            
  1666.          st_nlink          éßÑúñá 1.
  1667.                            
  1668.          st_size           ÉẼÑα Σá⌐½á  ó íá⌐Γáσ.
  1669.  
  1670.          st_atime          éαѼ∩ »«ß½Ññ¡Ñ⌐ ¼«ñ¿Σ¿¬áµ¿¿ Σá⌐½á.
  1671.                            
  1672.          st_mtime          éαѼ∩ »«ß½Ññ¡Ñ⌐ ¼«ñ¿Σ¿¬áµ¿¿ Σá⌐½á
  1673.                            (á¡á½«ú¿τ¡« st_atime).
  1674.                            
  1675.          st_ctime          éαѼ∩ »«ß½Ññ¡Ñ⌐ ¼«ñ¿Σ¿¬áµ¿¿ Σá⌐½á
  1676.                            (á¡á½«ú¿τ¡« st_atime ¿ st_mtime).
  1677.                            
  1678.       
  1679.                é  ßΓαπ¬ΓπαÑ  Γ¿»á stat ßπΘÑßΓóπεΓ Γα¿ ñ«»«½¡¿Γѽ∞¡δσ »«½∩,
  1680.          ¬«Γ«αδÑ ñ½∩ MS DOS ¡Ñ ¿¼ÑεΓ ß¼δß½á.
  1681.             
  1682.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1683.             
  1684.                öπ¡¬µ¿∩ fstat ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 0, Ñß½¿ ¿¡Σ«α¼áµ¿∩ « ßΓá-
  1685.          ΓπßÑ Σá⌐½á »«½πτÑ¡á. é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 ßó¿ñÑΓѽ∞ßΓóπÑΓ  «í
  1686.          «Φ¿í¬Ñ;  ó  φΓ«¼  ß½πτáÑ errno πßΓá¡áó½¿óáÑΓß∩ ó EBADF, «»αÑñѽ∩∩
  1687.          ΓѼ ßá¼δ¼ ¡ÑóÑα¡δ⌐ Σá⌐½«óδ⌐ handle.
  1688.                æ¼.ΓᬪѠaccess, chmode, filelength, stat.
  1689.             
  1690.                çá¼Ñτá¡¿Ñ! àß½¿ ºáñá¡¡δ⌐ handle  ßßδ½áÑΓß∩  ¡á  πßΓα«⌐ßΓó«,
  1691.          »«½∩ αẼÑαá ¿ óαѼѡ¿ ó ßΓαπ¬ΓπαÑ stat ¡Ñ ¿¼ÑεΓ ß¼δß½á.
  1692.             
  1693.                Åα¿¼Ñα.
  1694.             
  1695.                #include <fcntl.h>
  1696.                #include <sys\types.h>
  1697.                #include <sys\stat.h>
  1698.                #include <stdio.h>
  1699.             
  1700.                struct stat buf;
  1701.                int fh, result;
  1702.             
  1703.                fh=open("tmp/data", O_RDONLY);
  1704.                .
  1705.                .
  1706.                .
  1707.                result=fstat(fh,&buf);
  1708.             
  1709.                if (result==0)
  1710.                    printf("file size is %ld\n",buf.st_size);
  1711.          
  1712.                
  1713.  
  1714.                                       - 123 -
  1715.          
  1716.          
  1717.                FTELL
  1718.            
  1719.                #include <stdio.h>
  1720.             
  1721.                long ftell (stream);
  1722.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1723.       
  1724.                Ä»¿ßá¡¿Ñ:
  1725.       
  1726.                öπ¡¬µ¿∩  ftell  »«½πτáÑΓ  ΓѬπΘπε »«º¿µ¿ε π¬áºáΓѽ∩ ¡á Σá⌐½
  1727.          (Ñß½¿ «¡ ÑßΓ∞), ßó∩ºá¡¡«ú« ß »«Γ«¬«¼ stream.  Å«º¿µ¿∩  óδαáªáÑΓß∩
  1728.          ¬á¬ ß¼ÑΘÑ¡¿Ñ offset «Γ ¡áτá½á »«Γ«¬á stream.
  1729.             
  1730.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1731.             
  1732.                ¥Γá  Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ  ΓѬπΘπε  »«º¿µ¿ε. é ß½πτáÑ «Φ¿í¬¿
  1733.          ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ -1L. ä½∩ πßΓα«⌐ßΓó, ¡Ñ ß«ó¼ÑßΓ¿¼δσ ß «»Ñαá-
  1734.          µ¿Ñ⌐ seek (Γᬿσ ¬á¬ ΓÑନ¡á½δ ¿ »ÑτáΓ∞), ¿½¿ ¬«úñá »«Γ«¬  stream
  1735.          ¡Ñ  ßßδ½áÑΓß∩ ¡á «Γ¬αδΓδ⌐ Σá⌐½, ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ ¡Ñ«»αÑñѽÑ-
  1736.          ¡«.
  1737.                æ¼. ΓᬪѠfseek, lseek, tell.
  1738.             
  1739.                çá¼Ñτá¡¿Ñ! ç¡áτÑ¡¿Ñ, ó«ºóαáΘáѼ«Ñ fteel, Σ¿º¿τÑ߬¿ ¡Ñ «Γαá-
  1740.          ªáÑΓ íá⌐Γ«ó«ú« ß¼ÑΘÑ¡¿∩ offset ñ½∩ »«Γ«¬á, «Γ¬αδΓ«ú« ó  ΓѬßΓ«ó«¼
  1741.          αѪ¿¼Ñ,  Γ.¬. ΓѬßΓ«óδ⌐ αѪ¿¼ »αÑ«íαáºπÑΓ ¬«¼í¿¡áµ¿¿ éè - Åæ. êß-
  1742.          »«½∞ºπ⌐ΓÑ Σπ¡¬µ¿ε ftell ó¼ÑßΓÑ ß fseek, τΓ«íδ ¬«ααÑ¬Γ¡« ºá»«¼¡¿Γ∞
  1743.          ¿ ó«ßßΓá¡«ó¿Γ∞ ¼ÑßΓ«αáß»«½«ªÑ¡¿∩ π¬áºáΓѽ∩ ¡á Σá⌐½.
  1744.       
  1745.                Åα¿¼Ñα.
  1746.             
  1747.                #include <stdio.h>
  1748.                                                                 
  1749.                FILE *stream;
  1750.                                                                 
  1751.                long position;
  1752.             
  1753.                stream = fopen ("data", "rb");
  1754.                .
  1755.                .
  1756.                .
  1757.                position = fteel(stream);.
  1758.             
  1759.             
  1760.                FTIME
  1761.             
  1762.                #include <sys\types.h>
  1763.                #include <sys\timeb.h>
  1764.             
  1765.                void ftime(timeptr);
  1766.                struct timeb *timeptr; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ, «»¿ßá¡¡πε  ó
  1767.          <sys\timeb.h>.
  1768.             
  1769.                Ä»¿ßá¡¿Ñ:
  1770.             
  1771.                öπ¡¬µ¿∩  ftime  óδßóÑτ¿óáÑΓ  ΓѬπΘÑÑ  óαѼ∩  ¿ σαá¡¿Γ Ñú« ó
  1772.  
  1773.                                       - 124 -
  1774.          
  1775.          
  1776.          ßΓαπ¬ΓπαÑ, ¡á ¬«Γ«απε π¬áºδóáÑΓ timeptr. æΓαπ¬Γπαá timeb  «»¿ßá¡á
  1777.          ó  <sys\timeb.h>. Ä¡á  ß«ñÑαª¿Γ  4  »«½∩: time, millitm, timezone,
  1778.          dstflag, ¬«Γ«αδÑ ¿¼ÑεΓ ß½ÑñπεΘ¿Ñ º¡áτÑ¡¿∩:
  1779.             
  1780.             ÅÄïà                             çìÇùàìêà
  1781.             
  1782.             time                éαѼ∩,  ó  ßѬπ¡ñáσ,  »α«ΦÑñΦÑÑ «Γ
  1783.                                 º¡áτÑ¡¿∩   00:00:00   óαѼѡ¿   »«
  1784.                                 âα¿¡ó¿τπ, Γ.Ñ. ß 1∩¡óáα∩ 1970 ú.
  1785.                                 
  1786.             millitm             æ«Γá∩ ñ«½∩ ßѬπ¡ñδ.
  1787.                                 
  1788.             timezone            Éạ«ßΓ∞  ó ¼¿¡πΓáσ (ó ¡á»αáó½Ñ¡¿¿
  1789.                                 ¬ ºá»áñπ) ¼Ñªñπ º¡áτÑ¡¿Ñ¼  óαѼѡ¿
  1790.                                 »«  âα¿¡ó¿τπ  ¿  ¼ÑßΓ¡δ¼ óαѼѡѼ.
  1791.                                 ç¡áτÑ¡¿Ñ  timezone «»αÑñѽ∩ÑΓß∩ ¿º
  1792.                                 º¡áτÑ¡¿∩ timezone (ß¼. tzset).
  1793.                                 
  1794.             dstflag             ìÑ¡π½Ñó«Ñ  º¡áτÑ¡¿Ñ,   Ñß½¿   º«¡á
  1795.                                 »ÑαÑσ«ñá  ¡á  º¿¼¡ÑÑ/½ÑΓ¡ÑÑ  óαѼ∩
  1796.                                 »α¿ßπΓßΓóπÑΓ   ó   º«¡Ñ   ¼ÑßΓ¡«ú«
  1797.                                 óαѼѡ¿,  ¬«Γ«α«Ñ  «»αÑñѽ∩ÑΓß∩ ¿º
  1798.                                 º¡áτÑ¡¿∩   ú½«íá½∞¡«⌐   »ÑαѼѡ¡«⌐
  1799.                                 daylight ( ß¼. tzset.)
  1800.                                 
  1801.                                 
  1802.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1803.             
  1804.                öπ¡¬µ¿∩ ftime ºáñáÑΓ º¡áτÑ¡¿∩ »«½Ñ⌐ ßΓαπ¬Γπαδ, «»αÑñѽѡ¡«⌐
  1805.          »« timeptr. é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  1806.                æ¼. ΓᬪѠasctime, ctime, gmtime, localtime, time, tzset.
  1807.                Åα¿¼Ñα.
  1808.             
  1809.                #include <sys\types.h>
  1810.                #include <sys\timeb.h>
  1811.                #include <stdio.h>
  1812.                #include <time.h>
  1813.             
  1814.                main()
  1815.                {
  1816.                struct timeb timebuffer;
  1817.                char *timeline;
  1818.                time(&timebuffer);
  1819.             
  1820.                timeline = ctime(&(timebuffer, time));
  1821.             
  1822.                printf ("The time is %.19s.%hu %s",
  1823.                         timeline,   timebuffer.millitm,
  1824.                         &timeline[20]);
  1825.                }
  1826.             
  1827.                ìá óδσ«ñÑ íπñÑΓ ß½ÑñπεΘá∩ ¿¡Σ«α¼áµ¿∩:
  1828.             
  1829.                The time is Wed Dec 04 17:58:29.420 1985.
  1830.                           
  1831.  
  1832.                                       - 125 -
  1833.          
  1834.          
  1835.                
  1836.                FWRITE
  1837.             
  1838.                #include <stdio.h>
  1839.             
  1840.                int fwrite(buffer, size, count, stream);
  1841.                char *buffer; π¬áºáΓѽ∞ ¡á ºá»¿ßδóáѼδÑ ñá¡¡δÑ.
  1842.                int size; αẼÑα φ½Ñ¼Ñ¡Γá ó íá⌐Γáσ.
  1843.                int count; ¼á¬ß¿¼á½∞¡«Ñ τ¿ß½« ºá»¿ßδóáѼδσ φ½Ñ¼Ñ¡Γ«ó.
  1844.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ Γ¿»á FILE.
  1845.             
  1846.                Ä»¿ßá¡¿Ñ:
  1847.             
  1848.                öπ¡¬µ¿∩ fwrite ºá»¿ßδóáÑΓ φ½Ñ¼Ñ¡Γδ  count  ñ½¿¡«⌐  size  ¿º
  1849.          buffer  ó  óδσ«ñ¡«⌐ »«Γ«¬ stream. ô¬áºáΓѽ∞ ¡á Σá⌐½, ßó∩ºá¡¡δ⌐ ß«
  1850.          stream, πóѽ¿τ¿óáÑΓß∩ ¡á τ¿ß½« ºá»¿ßá¡¡δσ íá⌐Γ«ó.
  1851.                àß½¿ ºáñá¡¡δ⌐ stream «Γ¬αδΓ ó ΓѬßΓ«ó«¼ αѪ¿¼Ñ, ¬áªñδ⌐ ó«º-
  1852.          óαáΓ ¬áαÑΓ¬¿ ºá¼Ñ¡∩ÑΓß∩ »áα«⌐ "髺óαáΓ ¬áαÑΓ¬¿ - »ÑαÑó«ñ ßΓ᫬¿".
  1853.          ä½∩ ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ Γá¬á∩ ºá¼Ñ¡á ¡Ñ óδ»«½¡∩ÑΓß∩.
  1854.             
  1855.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1856.             
  1857.                é ß½πτáÑ «Φ¿í¬¿, Γ.Ñ. Ñß½¿ τ¿ß½« »«½¡«ßΓ∞ε ºá»¿ßá¡¡δσ  φ½Ñ-
  1858.          ¼Ñ¡Γ«ó  ¼Ñ¡∞ΦÑ,  τѼ  count,  Γ«úñá Σπ¡¬µ¿∩ fwrite ó«ºóαáΘáÑΓ φΓ«
  1859.          τ¿ß½«.
  1860.                æ¼. ΓᬪѠfread, write.
  1861.             
  1862.                Åα¿¼Ñα.
  1863.             
  1864.                #include <stdio.h>
  1865.             
  1866.                FILE *stream;
  1867.                long list[100];
  1868.                int numwritten;
  1869.             
  1870.                stream = fopen("data", "r+b");
  1871.                .
  1872.                .
  1873.                .
  1874.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ºá»¿ßδóáÑΓ 100 ñ½¿¡¡δσ µÑ½δσ ó  »«Γ«¬
  1875.          ó ñó«¿τ¡«¼ Σ«α¼áΓÑ */
  1876.             
  1877.                numwritten   =   fwrite((char  *)list,  sizeof(long),  100,
  1878.          stream);.
  1879.                
  1880.                
  1881.                GCVT
  1882.             
  1883.                #include <stdio.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐.
  1884.             
  1885.                char gcvt(value, ndec, buffer);
  1886.                double value; »αÑ«íαáºπѼ«Ñ º¡áτÑ¡¿Ñ.
  1887.                int ndec; ¬«½¿τÑßΓ󫠺ừ¼¿¡áѼδσ º¡áτáΘ¿σ µ¿Σα.
  1888.             
  1889.                char *buffer; »á¼∩Γ∞ ñ½∩ σαá¡Ñ¡¿∩ αѺπ½∞ΓáΓá.
  1890.  
  1891.                                       - 126 -
  1892.          
  1893.          
  1894.            
  1895.                Ä»¿ßá¡¿Ñ:
  1896.                                  
  1897.                öπ¡¬µ¿∩ gcvt »αÑ«íαẫóδóáÑΓ º¡áτÑ¡¿Ñ  ß  »½áóáεΘÑ⌐  Γ«τ¬«⌐
  1898.          value  ó  ß¿¼ó«½∞¡πε  ßΓα«¬π  ¿  ºá»«¼¿¡áÑΓ  φΓπ  ßΓ᫬π ó íπΣÑαÑ
  1899.          buffer. üπΣÑα buffer ñ«½ªÑ¡ íδΓ∞ ñ«ßΓáΓ«τ¡« í«½∞Φ¿¼,  τΓ«íδ  ß¼«ú
  1900.          αẼÑßΓ¿Γ∞  »αÑ«íαẫóá¡¡«Ñ  º¡áτÑ¡¿Ñ  ó¼ÑßΓÑ  ß ¡π½Ñóδ¼ ß¿¼ó«½«¼
  1901.          «¬«¡τá¡¿∩ '\0', ¬«Γ«αδ⌐ ñ«íáó½∩ÑΓß∩ áóΓ«¼áΓ¿τÑ߬¿. ÅÑαÑ»«½¡Ñ¡¿Ñ ¡Ñ
  1902.          ¬«¡Γα«½¿απÑΓß∩.
  1903.                öπ¡¬µ¿∩  gcvt »δΓáÑΓß∩ «íαáí«ΓáΓ∞ ndec º¡áτáΘ¿σ µ¿Σα ó Σ«α-
  1904.          ¼áΓÑ FORTRAN F. àß½¿ φΓ« ¡Ñ πñáÑΓß∩,  «¡á  «íαáíáΓδóáÑΓ  º¡áτáΘ¿Ñ
  1905.          µ¿Σαδ ó Σ«α¼áΓÑ FORTRAN E. Åα¿ »αÑ«íαẫóá¡¿¿ óÑñπΘ¿Ñ ¡π½¿ »«ñáó-
  1906.          ½∩εΓß∩.
  1907.             
  1908.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1909.             
  1910.                öπ¡¬µ¿∩  gcvt ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á ßΓα«¬π µ¿Σα. é ß½πτáÑ
  1911.          «Φ¿í¬¿  ¡ÑΓ ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩.
  1912.                æ¼. ΓᬪѠatof, atoi, atol, ecvt, fcvt.
  1913.             
  1914.                Åα¿¼Ñα:
  1915.             
  1916.                #include <stdio.h>
  1917.             
  1918.                char buffer[50];
  1919.                int precision = 7;
  1920.             
  1921.                /* ó íπΣÑαÑ ß«ñÑনΓß∩ "-314150.0" */
  1922.             
  1923.                gcvt (-3.1415e5, precision, buffer);.
  1924.             
  1925.  
  1926.                GETC - GETCHAR
  1927.             
  1928.                #include <stdio.h>
  1929.                                                                   
  1930.                int getc (stream); τ¿ΓáÑΓ ß¿¼ó«½ ¿º »«Γ«¬á stream.
  1931.                                                                   
  1932.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  1933.                                                                   
  1934.                int getchar(); τ¿ΓáÑΓ ß¿¼ó«½ ¿º stdin.
  1935.                                                                   
  1936.                Ä»¿ßá¡¿Ñ:
  1937.             
  1938.                îá¬α« getc τ¿ΓáÑΓ «Γñѽ∞¡δ⌐ ß¿¼ó«½ ¿º ΓѬπΘÑ⌐ »«º¿µ¿¿ »«Γ«-
  1939.          ¬á stream ¿ ¿º¼Ñ¡∩ÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐ π¬áºáΓѽ∞ ¡á Σá⌐½ ñ½∩ π¬áºá-
  1940.          ¡¿∩ ß½ÑñπεΘÑú« ß¿¼ó«½á. îá¬α« getchar ¿ñÑ¡Γ¿τ¡á getc(stdin).
  1941.  
  1942.                                      
  1943.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1944.             
  1945.                îá¬α« getc ¿ getchar ó«ºóαáΘáεΓ »α«τ¿Γá¡¡δ⌐ ß¿¼ó«½. é«ºóαá-
  1946.          ΘáѼ«Ñ º¡áτÑ¡¿Ñ EOF ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ ¿½¿ «í πß½«ó¿¿ ñ«ß-
  1947.          Γ¿ªÑ¡¿∩ ¬«¡µá Σá⌐½á. ä½∩ «»αÑñѽѡ¿∩ ¬áΓÑú«α¿¿ «Φ¿í¬¿ ¿ß»«½∞ºπεΓ-
  1948.          ß∩ Σπ¡¬µ¿¿ ferror ¿½¿ feof.
  1949.  
  1950.                                       - 127 -
  1951.          
  1952.          
  1953.                æ¼. ΓᬪѠfgetc, fgetchar, getch,  getche,  putc,  putchar,
  1954.          ungetc.
  1955.                
  1956.                çá¼Ñτá¡¿Ñ!   Åα«µÑñπαδ   getc,   getchar  ¿ñÑ¡Γ¿τ¡δ  fgetc,
  1957.          fgetchar, ¡« «¡¿ ∩ó½∩εΓß∩ ¼á¬α«, á ¡Ñ Σπ¡¬µ¿∩¼¿.
  1958.             
  1959.                Åα¿¼Ñα.
  1960.             
  1961.                #include <stdio.h>
  1962.             
  1963.                FILE *stream;
  1964.                char buffer[81];
  1965.                int i, ch;
  1966.                .
  1967.                .
  1968.                .
  1969.                /* ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ »«ºó«½∩εΓ óδí¿αáΓ∞ ΓαÑíπѼπε  óó«ñ¿-
  1970.          ¼πε ßΓα«¬π ¿º stdin */
  1971.             
  1972.                for (i = 0; (i < 80) && ((ch = getchar ()) != EOF) &&
  1973.                   (ch != '\n'); i++)
  1974.                   buffer [i] = ch;
  1975.                   
  1976.                buffer[i] = '\0';
  1977.             
  1978.                /*  ñ½∩ óó«ñá ßΓ᫬ ¿º »«Γ«¬á stdin ó «»ÑαáΓ«αáσ, »α¿óÑñÑ¡-
  1979.          ¡δσ óδΦÑ, ¼«ª¡« ó¼ÑßΓ« "getchar ()"  ¿ß»«½∞º«óáΓ∞  "getc(stdin)".
  1980.          */
  1981.                 
  1982.                
  1983.                GETCH
  1984.             
  1985.                #include <conio.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿.
  1986.             
  1987.                int getch();
  1988.             
  1989.                Ä»¿ßá¡¿Ñ:
  1990.             
  1991.                öπ¡¬µ¿∩  getch  τ¿ΓáÑΓ íѺ φσ«-«Γ«íαáªÑ¡¿∩ «Γñѽ∞¡δ⌐ ß¿¼ó«½
  1992.          »α∩¼«  ß  ¬«¡ß«½¿.  ìá»ÑτáΓá¡¡δÑ  (óóÑñÑ¡¡δÑ)  ß¿¼ó«½δ  ¡Ñ  ¿¼ÑεΓ
  1993.          φσ«-«Γ«íαáªÑ¡¿∩.  àß½¿  óóÑñÑ¡  CONTROLL-C, ß¿ßΓѼá óδ»«½¡∩ÑΓ INT
  1994.          23H.
  1995.             
  1996.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  1997.       
  1998.                öπ¡¬µ¿∩ getch ó«ºóαáΘáÑΓ »α«τ¿Γá¡¡δ⌐ ß¿¼ó«½.  é«ºóαáΘáѼ«ú«
  1999.          º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  2000.                æ¼.ΓᬪѠcgets, getche, getchar.
  2001.             
  2002.             
  2003.                Åα¿¼Ñα.
  2004.             
  2005.                #include <conio.h>
  2006.                #include <ctype.h>
  2007.             
  2008.  
  2009.                                       - 128 -
  2010.          
  2011.          
  2012.                int ch;
  2013.             
  2014.                /*  ó φΓ«¼ µ¿¬½Ñ íÑαπΓß∩ ß¿¼ó«½δ ß ¬½áó¿áΓπαδ, »«¬á ¡Ñ óßΓ-
  2015.          αÑΓ¿Γß∩ "¡Ñ »α«íѽ∞¡δ⌐" ß¿¼ó«½.  ÅαÑñΦÑßΓóπεΘ¿Ñ  ß¿¼ó«½δ  »α«íѽá
  2016.          «ΓíαáßδóáεΓß∩. */
  2017.             
  2018.             
  2019.                GETCHE
  2020.             
  2021.                #include <conio.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿.
  2022.       
  2023.                int getche ();
  2024.             
  2025.                Ä»¿ßá¡¿Ñ:
  2026.             
  2027.                öπ¡¬µ¿∩  getche τ¿ΓáÑΓ «Γñѽ∞¡δ⌐ ß¿¼ó«½ ß ¬«¡ß«½¿ ¿ óδαáíá-
  2028.          ΓδóáÑΓ φσ« ñ½∩ »α«τ¿Γá¡¡«ú« ß¿¼ó«½á.  àß½¿  óó«ñ¿Γß∩  CONTROLL-C,
  2029.          ß¿ßΓѼá óδ»«½¡∩ÑΓ INT 23H (óδσ«ñ »« CONTROLL-C).
  2030.             
  2031.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2032.             
  2033.                öπ¡¬µ¿∩  getche ó«ºóαáΘáÑΓ ß¿¼ó«½. é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ó
  2034.          ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  2035.                æ¼.ΓᬪѠcgets, getch, getchar.
  2036.             
  2037.                Åα¿¼Ñα.
  2038.             
  2039.                #include <conio.h>
  2040.                #include <ctype.h>
  2041.             
  2042.                int ch;
  2043.             
  2044.                /* íÑαÑΓ ß¿¼ó«½ ß ¬½áó¿áΓπαδ, óδαáíáΓδóáÑΓ Ñú«  φσ«-«Γ«íαá-
  2045.          ªÑ¡¿Ñ  ¡á ¬«¡ß«½¿. àß½¿ φΓ« ß¿¼ó«½ óÑασ¡Ñú« αÑú¿ßΓαá, »αÑ«íαáºπÑΓ
  2046.          Ñú« ¬ ß¿¼ó«½π ¡¿ª¡Ñú« αÑú¿ßΓαá ¿ ºá»¿ßδóáÑΓ ßΓáαδ⌐ ß¿¼ó«½ */.
  2047.             
  2048.                ch = getche();
  2049.             
  2050.                if (isupper (ch))
  2051.                   cprintf ("\b%c", _tolower(ch));
  2052.                
  2053.                
  2054.                GETCWD
  2055.  
  2056.             
  2057.                #include <direct.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩  «íΩ∩ó½Ñ¡¿∩  Σπ¡¬-
  2058.          µ¿¿.
  2059.             
  2060.             
  2061.                char *getcwd(pathbuf,n);
  2062.                char *pathbuf; »á¼∩Γ∞ ñ½∩ path-¿¼Ñ¡¿.
  2063.                int n; ¼á¬ß¿¼á½∞¡á∩ ñ½¿¡á path-¿¼Ñ¡¿.
  2064.             
  2065.             
  2066.  
  2067.                                       - 129 -
  2068.                              
  2069.                
  2070.                Ä»¿ßá¡¿Ñ:
  2071.          
  2072.                öπ¡¬µ¿∩  getcwd  »«½πτáÑΓ »«½¡«Ñ path-¿¼∩ ΓѬπΘÑú« αáí«τÑú«
  2073.          ñ¿αÑ¬Γ«α¿∩ ¿ ºá»«¼¿¡áÑΓ Ñú« ó pathbuf. ûѽδ⌐ áαúπ¼Ñ¡Γ n «»αÑñѽ∩-
  2074.          ÑΓ ¼á¬ß¿¼á½∞¡πε ñ½¿¡π ñ½∩ path-¿¼Ñ¡¿. é«º¡¿¬áÑΓ «Φ¿í¬á, Ñß½¿ ñ½¿-
  2075.          ¡á path-¿¼Ñ¡¿, ó¬½ετá∩ ¡π½Ñó«⌐ ß¿¼ó«½ «¬«¡τá¡¿∩, »αÑóδΦáÑΓ n.
  2076.                Çαúπ¼Ñ¡Γ pathbuf ¼«ªÑΓ íδΓ∞ NULL; íπΣÑα  αẼÑα«¼  n  íπñÑΓ
  2077.          áóΓ«¼áΓ¿τÑ߬¿  ºáσóáΓδóáΓ∞ß∩  »«ßαÑñßΓó«¼ malloc ¿ ¿ß»«½∞º«óáΓ∞ß∩
  2078.          ñ½∩ σαá¡Ñ¡¿∩ path-¿¼Ñ¡¿. ¥Γ«Γ íπΣÑα »«ºªÑ ¼«ªÑΓ  íδΓ∞  «ßó«í«ªñÑ¡
  2079.          »α¿  ¿ß»«½∞º«óá¡¿¿ ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ Σπ¡¬µ¿¿ getchar (π¬áºá-
  2080.          Γѽ∞ ¡á ºáσóáτÑ¡¡δ⌐ íπΣÑα) »«ßαÑñßΓó«¼ Σπ¡¬µ¿¿ free.
  2081.             
  2082.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2083.             
  2084.                öπ¡¬µ¿∩ getcwd ó«ºóαáΘáÑΓ  pathbuf.  é«ºóαáΘáѼ«Ñ  º¡áτÑ¡¿Ñ
  2085.          NULL ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ  ¿ errno πßΓá¡áó½¿óáÑΓß∩ ó «ñ¡« ¿º
  2086.          ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
  2087.             
  2088.          ç¡áτÑ¡¿Ñ                      àú« ß¼δß½
  2089.             
  2090.          ENOMEM               Åá¼∩Γ¿ ¡Ññ«ßΓáΓ«τ¡« ñ½∩ αẼÑΘÑ¡¿∩    n
  2091.                               íá⌐Γ  (¬«úñá  áαúπ¼Ñ¡Γ  NULL  ºáñá¡ ¬á¬
  2092.                               pathbuf).
  2093.                            
  2094.          ERANGE               Path-¿¼∩ ñ½¿¡ÑÑ, τѼ n ß¿¼ó«½«ó.
  2095.             
  2096.                æ¼.ΓᬪѠchdir, mkdir, rmdir.
  2097.             
  2098.                Åα¿¼Ñα.
  2099.             
  2100.                #include <direct.h>
  2101.                #include <stdlib.h>
  2102.             
  2103.                char buffer [51];
  2104.             
  2105.                /*  ß½ÑñπεΘ¿⌐  «»ÑαáΓ«α ºá»¿ßδóáÑΓ ¿¼∩ ΓѬπΘÑú« αáí«τÑú« **
  2106.          ñ¿αÑ¬Γ«α¿∩ (ñ½¿¡«⌐ ñ« 50 ß¿¼ó«½«ó) ó íπΣÑα */
  2107.             
  2108.                if (getcwd(buffer,50)==NULL)
  2109.                    perror("getcwd error");
  2110.       
  2111.       
  2112.                GETENV.
  2113.             
  2114.                #include <stdlib.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩  «íΩ∩ó½Ñ¡¿∩  Σπ¡¬-
  2115.          µ¿¿.
  2116.             
  2117.                char *getenv(varname);
  2118.                char *varname; ¿¼∩ »ÑαѼѡ¡«⌐ «¬απªÑ¡¿∩.
  2119.             
  2120.                Ä»¿ßá¡¿Ñ:
  2121.             
  2122.                öπ¡¬µ¿∩  getenv ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐
  2123.          «¬απªÑ¡¿∩ ñ½∩ ß««ΓóÑΓßΓóπεΘÑú« ¿¼Ñ¡¿ varname φΓ«⌐ »ÑαѼѡ¡«⌐. ÅÑ-
  2124.          αѼѡ¡δÑ «¬απªÑ¡¿∩ «»αÑñѽ∩εΓ «¬απªÑ¡¿Ñ,  ó  ¬«Γ«α«¼  óδ»«½¡∩ÑΓß∩
  2125.          »α«µÑßß  (¡á»α¿¼Ñα,  »«¿ß¬  path ñ½∩ í¿í½¿«ΓѬ, ¬«Γ«αδÑ ½¿¡¬πεΓß∩
  2126.          ó¼ÑßΓÑ ß »α«úαá¼¼«⌐).
  2127.  
  2128.                                       - 130 -
  2129.          
  2130.          
  2131.             
  2132.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2133.             
  2134.                öπ¡¬µ¿∩ getenv ó«ºóαáΘáÑΓ π¬áºáΓѽ∞  ¡á  º¡áτÑ¡¿Ñ  (ßΓ᫬π)
  2135.          »ÑαѼѡ¡«⌐  «¬απªÑ¡¿∩, ß«ñÑαªáΘπε ΓѬπΘÑÑ ºáτÑ¡¿Ñ ßΓ᫬¿ varname.
  2136.          é«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ NULL, Ñß½¿ ºáñá¡¡á∩ »ÑαѼѡá∩ ó ΓѬπΘ¿⌐ ¼«-
  2137.          ¼Ñ¡Γ ¡Ñ «»αÑñѽѡá.
  2138.                æ¼. ΓᬪѠputenv.
  2139.             
  2140.                çá¼Ñτá¡¿Ñ! çỿß∞ ó Γáí½¿µÑ »ÑαѼѡ¡δ󠫬απªÑ¡¿∩ ¡Ñ»«ßαÑñß-
  2141.          ΓóÑ¡¡« ¡Ñ ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡á. àß½¿ ºá»¿ß∞  ¡πª¡«  ¿º¼Ñ¡¿Γ∞,  ¿ß-
  2142.          »«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ putenv. ùΓ«íδ ¼«ñ¿Σ¿µ¿α«óáΓ∞ ó«ºóαáΘáѼ«Ñ º¡á-
  2143.          τÑ¡¿Ñ ¿ »α¿ φΓ«¼ ¡Ñ ºáΓα«¡πΓ∞ Γáí½¿µπ »ÑαѼѡ¡δ󠫬απªÑ¡¿∩, ¡πª¡«
  2144.          ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ strdup ¿½¿ strcpy, ¬«Γ«αδÑ »«ºó«½∩εΓ ¬«»¿α«-
  2145.          óá¡¿Ñ ßΓ᫬¿.
  2146.                öπ¡¬µ¿¿  getenv  ¿  putenv ¿ß»«½∞ºπεΓ ú½«íá½∞¡πε »ÑαѼѡ¡πε
  2147.          environ ñ½∩  ñ«ßΓπ»á  ¬  Γáí½¿µÑ  »ÑαѼѡ¡δσ  «¬απªÑ¡¿∩.  öπ¡¬µ¿∩
  2148.          putenv  ¼«ªÑΓ  ¿º¼Ñ¡∩Γ∞  º¡áτÑ¡¿Ñ environ, ñѽá∩ ¡ÑñÑ⌐ßΓó¿Γѽ∞¡δ¼
  2149.          áαúπ¼Ñ¡Γ "envp" ñ½∩ Σπ¡¬µ¿¿ "main".
  2150.             
  2151.                Åα¿¼Ñα.
  2152.             
  2153.                #include <stdlib.h>
  2154.             
  2155.                char *pathvar;
  2156.             
  2157.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α »«½πτáÑΓ º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐  «¬απªÑ-
  2158.          ¡¿∩ PATH */
  2159.             
  2160.                pathvar = getenv("PATH");
  2161.             
  2162.                /* àß½¿ ó «¬απªÑ¡¿¿ ÑßΓ∞ ºá»¿ß∞ "PATH  =  A:\BIN;  B:\BIN",
  2163.          Γ« π¬áºáΓѽ∞ pathvar íπñÑΓ ßßδ½áΓ∞ß∩ ¡á "A:\BIN; B:\BIN". àß½¿ »Ñ-
  2164.          αѼѡ¡«⌐ «¬απªÑ¡¿∩ PATH ¡ÑΓ,π¬áºáΓѽ∞ pathvar íπñÑΓ αáóÑ¡ NULL.*/
  2165.             
  2166.       
  2167.                GETPID
  2168.             
  2169.                #include  <process.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩ Σπ¡¬-
  2170.          µ¿¿.
  2171.                int getpid();
  2172.             
  2173.                Ä»¿ßá¡¿Ñ:
  2174.             
  2175.                öπ¡¬µ¿∩ getpid ó«ºóαáΘáÑΓ  ¿ñÑ¡Γ¿Σ¿¬áΓ«α  »α«µÑßßá  (¡«¼Ñα)
  2176.          ID, ¬«Γ«αδ⌐ π¡¿¬á½∞¡« «»αÑñѽ∩ÑΓ óδºδóáѼδ⌐ »α«µÑßß.
  2177.             
  2178.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2179.             
  2180.                öπ¡¬µ¿∩  getpid ó«ºóαáΘáÑΓ ¿ñÑ¡Γ¿Σ¿¬áΓ«α »α«µÑßßá ID. é«ºó-
  2181.          αáΘáѼ«ú« º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  2182.                æ¼.ΓᬪѠmktemp.
  2183.             
  2184.             
  2185.  
  2186.                                       - 131 -
  2187.          
  2188.                Åα¿¼Ñα.
  2189.          
  2190.                #include <process.h>
  2191.                #include <string.h>
  2192.                #include <stdio.h>
  2193.             
  2194.                char filename[9], pid[5];
  2195.                .
  2196.                .
  2197.                .
  2198.  
  2199.                strcpy(filename, "FILE");
  2200.                strcat(filename, itoa(getpid(), pid, 10));
  2201.             
  2202.                /* »ÑτáΓáÑΓß∩ "FILExxxxx", úñÑ xxxxx ∩ó½∩ÑΓß∩ **  ¿ñÑ¡Γ¿Σ¿-
  2203.          ¬áΓ«α«¼ »α«µÑßßá id */
  2204.             
  2205.                printf("File name is %s\n", filename);
  2206.             
  2207.             
  2208.                GETS
  2209.             
  2210.                #include <stdio.h>
  2211.                                                                   
  2212.                char *gets(buffer);
  2213.                char *buffer; »á¼∩Γ∞ ñ½∩ σαá¡Ñ¡¿∩ óó«ñ¿¼«⌐ ßΓ᫬¿.
  2214.                                                                   
  2215.                Ä»¿ßá¡¿Ñ:
  2216.  
  2217.                öπ¡¬µ¿∩  gets  τ¿ΓáÑΓ  ßΓα«¬π  ¿º »«Γ«¬á ßΓá¡ñáαΓ¡«ú« óó«ñá
  2218.          stdin ¿ ºá»«¼¿¡áÑΓ ÑÑ ó íπΣÑαÑ buffer. æΓ᫬á ß«ßΓ«¿Γ  ¿º  ¡áí«αá
  2219.          ß¿¼ó«½«ó ¿ ºá¬á¡τ¿óáÑΓß∩ ß¿¼ó«½«¼ ¡«ó«⌐ ßΓ᫬¿ '\n'. ÅÑαÑñ ó«ºóαá-
  2220.          Γ«¼ Σπ¡¬µ¿∩ gets ºá¼ÑΘáÑΓ ß¿¼ó«½ ¡«ó«⌐ ßΓ᫬¿ ß¿¼ó«½«¼ '\0', ó «Γ-
  2221.          ½¿τ¿¿ «Γ Σπ¡¬µ¿¿ fgets, ¬«Γ«αá∩ ß«σαá¡∩ÑΓ ß¿¼ó«½ ¡«ó«⌐ ßΓ᫬¿.
  2222.             
  2223.  
  2224.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2225.             
  2226.                öπ¡¬µ¿∩  ó«ºóαáΘáÑΓ  ßó«⌐ áαúπ¼Ñ¡Γ. ç¡áτÑ¡¿Ñ π¬áºáΓѽ∩ NULL
  2227.          ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ ¿½¿ ñ«ßΓ¿ªÑ¡¿¿ ¬«¡µá Σá⌐½á. ä½∩ «»αÑñÑ-
  2228.          ½Ñ¡¿∩ ¬áΓÑú«α¿¿ «Φ¿í¬¿ ¿ß»«½∞ºπεΓß∩ Σπ¡¬µ¿¿ ferror ¿½¿ feof.
  2229.                æ¼. ΓᬪѠfgets, fputs, puts.
  2230.             
  2231.  
  2232.                Åα¿¼Ñα.
  2233.             
  2234.                #include <stdio.h>
  2235.                                                                   
  2236.                char line[100];
  2237.                char *result;
  2238.             
  2239.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α óδí¿αáÑΓ ßΓα«¬π ¿º »«Γ«¬á stdin */
  2240.             
  2241.                result = gets(line);.
  2242.             
  2243.             
  2244.  
  2245.                                       - 132 -
  2246.          
  2247.          
  2248.                GETW
  2249.                
  2250.                
  2251.                #include <stdio.h>
  2252.             
  2253.                int getw (stream);
  2254.             
  2255.                FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
  2256.                                                                                                                        
  2257.                Ä»¿ßá¡¿Ñ:
  2258.       
  2259.                öπ¡¬µ¿∩ getw τ¿ΓáÑΓ ñó«¿τ¡«Ñ º¡áτÑ¡¿Ñ Γ¿»á int ¿º ß»Ñµ¿á½∞-
  2260.          ¡«ú« »«Γ«¬á stream ¿ ¿º¼Ñ¡∩ÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐ π¬áºáΓѽ∞  ¡á  Σá⌐½
  2261.          (Ñß½¿  «¡ ÑßΓ∞), τΓ«íδ π¬áºáΓ∞ ¡á ß½ÑñπεΘ¿⌐ ¡Ñ»α«τ¿Γá¡¡δ⌐ ß¿¼ó«½.
  2262.          ¥Γá Σπ¡¬µ¿∩ ¡Ñ »αÑñ»«½áúáÑΓ ß»Ñµ¿á½∞¡«ú« óδαáó¡¿óá¡¿∩ «íΩÑ¬Γ«ó.
  2263.      
  2264.             
  2265.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2266.             
  2267.                ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ßτ¿Γá¡¡«Ñ µÑ½«Ñ º¡áτÑ¡¿Ñ. é«ºóαáΘáÑ-
  2268.          ¼«Ñ º¡áτÑ¡¿Ñ EOF ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ ¿½¿ « ñ«ßΓ¿ªÑ¡¿¿ ¬«¡µá
  2269.          Σá⌐½á; «ñ¡á¬«, º¡áτÑ¡¿Ñ EOF ¼«ªÑΓ íδΓ∞ ó«ß»α¿¡∩Γ« ¬á¬ µÑ½á∩ óѽ¿-
  2270.          τ¿¡á, »«φΓ«¼π ñ½∩ »α«óÑન ¬«¡µá Σá⌐½á ¿½¿ πß½«ó¿∩ «Φ¿í¬¿ ¿ß»«½∞-
  2271.          ºπεΓß∩ Σπ¡¬µ¿¿ ferror ¿ feof.
  2272.                æ¼. ΓᬪѠputw.
  2273.                
  2274.                çá¼Ñτá¡¿Ñ! öπ¡¬µ¿∩ getw «íÑß»Ñτ¿óáÑΓ ß«ó¼ÑßΓ¿¼«ßΓ∞ ß »αÑñδ-
  2275.          ñπΘ¿¼¿ í¿í½¿«ΓѬἿ. ìÑ«íσ«ñ¿¼« ºá¼ÑΓ¿Γ∞, τΓ« »α«í½Ñ¼δ  »ÑαÑ¡«ß¿-
  2276.          ¼«ßΓ¿  ¼«úπΓ ó«º¡¿¬áΓ∞ ó¼ÑßΓÑ ß getw, Ñß½¿ ó ß¿ßΓѼáσ αẽ¿τáεΓß∩
  2277.          αẼÑαδ int ¿ »«α∩ñ«¬ íá⌐Γ«ó ó¡πΓα¿ int.
  2278.  
  2279.                Åα¿¼Ñα.
  2280.             
  2281.                #include <stdio.h>
  2282.                #include <stdlib.h>
  2283.  
  2284.                FILE *stream;
  2285.                int i;
  2286.                .
  2287.                .
  2288.                .
  2289.                /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ßτ¿ΓδóáÑΓ ß½«ó« ¿º  »«Γ«¬á  stream  ¿
  2290.          »α«óÑα∩ÑΓ ¡á½¿τ¿Ñ «Φ¿í¬¿ */
  2291.             
  2292.                i = getw(stream);
  2293.  
  2294.                if (ferror(stream))
  2295.                { fprintf(stderr, "getw failed\n");
  2296.                clearerr (stream);
  2297.                }.
  2298.                    
  2299.                
  2300.                GMTIME
  2301.             
  2302.                #include <time.h>
  2303.                 
  2304.                struct tm *gmtime(time);
  2305.  
  2306.                                       - 133 -
  2307.          
  2308.          
  2309.                long *time; π¬áºáΓѽ∞ ¡á σαá¡¿¼«Ñ óαѼ∩.
  2310.             
  2311.             
  2312.                Ä»¿ßá¡¿Ñ:
  2313.             
  2314.                öπ¡¬µ¿∩  gtime  »αÑ«íαáºπÑΓ óαѼ∩, σαá¡¿¼«Ñ ¬á¬ long-º¡áτÑ-
  2315.          ¡¿Ñ, ¬ ßΓαπ¬ΓπαÑ. Long-º¡áτÑ¡¿Ñ time »αÑñßΓáó½∩ÑΓ  ßѬπ¡ñδ,  »α«-
  2316.          ΦÑñΦ¿Ñ  «Γ 00:00:00 º¡áτÑ¡¿∩ óαѼѡ¿ »« âα¿¡ó¿τπ, Γ.Ñ. ß 1 ∩¡óáα∩
  2317.          1980 ú«ñá. ¥Γ« º¡áτÑ¡¿Ñ «íδτ¡« »«½πτáÑΓß∩ ¿º ó맮óá Σπ¡¬µ¿¿ time.
  2318.                öπ¡¬µ¿∩ gmtime αáºαδóáÑΓ  º¡áτÑ¡¿Ñ  time  ¿  σαá¡¿Γ  Ñú«  ó
  2319.          ßΓαπ¬ΓπαÑ  Γ¿»á tm, «íΩ∩ó½Ñ¡¡«⌐ ó <time.h>. ÉѺπ½∞ΓáΓ ó ßΓαπ¬ΓπαÑ
  2320.          «ΓαáªáÑΓ º¡áτÑ¡¿Ñ óαѼѡ¿ »« âα¿¡ó¿τπ, á ¡Ñ ¼ÑßΓ¡«Ñ óαѼ∩.
  2321.             
  2322.                Å«½∩ ó ßΓαπ¬ΓπαÑ Γ¿»á tm σαá¡∩Γ ß½ÑñπεΘ¿Ñ º¡áτÑ¡¿∩:
  2323.             
  2324.               Å«½Ñ                òαá¡¿¼«Ñ º¡áτÑ¡¿Ñ
  2325.             
  2326.             tm_sec           æÑ¬π¡ñδ
  2327.             
  2328.             tm_min           î¿¡πΓδ
  2329.             
  2330.             tm_hour          ùáßδ («Γ 0 ñ« 24)
  2331.  
  2332.             tm_mday          äÑ¡∞ ¼Ñß∩µá («Γ 1 ñ« 31)
  2333.  
  2334.             tm_mon           îÑß∩µδ («Γ 0 ñ« 11; ∩¡óáα∞=0)
  2335.  
  2336.             tm_year          â«ñ (ΓѬπΘ¿⌐ ú«ñ ¼¿¡πß 1900)
  2337.             
  2338.             tm_wday          äÑ¡∞ ¡Ññѽ¿ («Γ 0 ñ« 6;
  2339.                              ó«ß¬αÑßÑ¡∞Ñ = 0)
  2340.             
  2341.             tm_yday          äÑ¡∞ ú«ñá («Γ 0 ñ« 365;
  2342.                              1 ∩¡óáα∩ = 0)
  2343.             
  2344.             tm_isdst         ìÑ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ, Ñß½¿  «ßπΘÑßΓó½Ñ¡
  2345.                              »ÑαÑσ«ñ ¡á ½ÑΓ¡ÑÑ/º¿¼¡ÑÑ óαѼ∩, ¿¡áτÑ
  2346.                              0.
  2347.  
  2348.                é MS DOS ñáΓδ αá¡∞ΦÑ 1980 ú«ñá  ¡Ñ  »«¡¿¼áεΓß∩.  àß½¿  time
  2349.          »αÑñßΓáó½∩ÑΓ  ñáΓπ  αá¡ÑÑ  1  ∩¡óáα∩ 1980 ú«ñá, gmtime ó«ºóαáΘáÑΓ
  2350.          ß¿¼ó«½∞¡πε ßΓ᫬π, »αÑñßΓáó½Ñ¡¡πε 00:00:00 January 1,1980.
  2351.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2352.             
  2353.                öπ¡¬µ¿∩ gmtime ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á αѺπ½∞ΓáΓ,  σαá¡¿¼δ⌐
  2354.          ó ßΓαπ¬ΓπαÑ. é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
  2355.                æ¼.ΓᬪѠasctime, ftime, ctime, localtime, time.
  2356.            
  2357.                çá¼Ñτá¡¿Ñ! öπ¡¬µ¿¿ gmtime ¿ localtime ¿ß»«½∞ºπεΓ «ñ¿¡ ¿ Γ«Γ
  2358.          ªÑ  ßΓáΓ¿ßΓ¿τÑ߬¿ ºáσóáτÑ¡¡δ⌐ íπΣÑα ñ½∩ σαá¡Ñ¡¿∩ ó ¡Ñ¼ ßΓ᫬¿ αÑ-
  2359.          ºπ½∞ΓáΓá. èáªñδ⌐ ó맮ó «ñ¡«⌐ ¿º φΓ¿σ »α«µÑñπα π¡¿τΓ«ªáÑΓ  αѺπ½∞-
  2360.          ΓáΓ »αÑñδñπΘÑú« ó맮óá.
  2361.  
  2362.             
  2363.  
  2364.                                       - 134 -
  2365.          
  2366.                Åα¿¼Ñα.
  2367.          
  2368.                #include <time.h>
  2369.             
  2370.                struct tm *newtime;
  2371.                long ltime;
  2372.             
  2373.                time(<ime);
  2374.                newtime=gmtime(<ime);
  2375.                printf("Greenwich mean time is %s\n",
  2376.                        asctime(newtime));
  2377.                
  2378.                
  2379.                HALLOC
  2380.             
  2381.                #include  <malloc.h>  ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩ Σπ¡¬-
  2382.          µ¿¿.
  2383.             
  2384.                char huge *halloc(n,size);
  2385.                long n; τ¿ß½« φ½Ñ¼Ñ¡Γ«ó.
  2386.                unsigned size; ñ½¿¡á ¬áªñ«ú« φ½Ñ¼Ñ¡Γá ó íá⌐Γáσ.
  2387.             
  2388.                Ä»¿ßá¡¿Ñ:
  2389.             
  2390.                öπ¡¬µ¿∩ halloc ºáσóáΓδóáÑΓ »á¼∩Γ∞  ñ½∩  huge-¼áßß¿óá  ¿º  n
  2391.          φ½Ñ¼Ñ¡Γ«ó,  ¬áªñδ⌐ ñ½¿¡«⌐ size íá⌐Γ«ó. èáªñδ⌐ φ½Ñ¼Ñ¡Γ ¿¡¿µ¿á½¿º¿-
  2392.          α«óá¡ ó 0.
  2393.                àß½¿ αẼÑα ¼áßß¿óᠼѡ∞ΦÑ τѼ 128, Γ« αẼÑα φ½Ñ¼Ñ¡Γá ¼áß-
  2394.          ß¿óá ñ«½ªÑ¡ íδΓ∞ ßΓѻѡ∞ε 2.
  2395.             
  2396.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2397.             
  2398.                öπ¡¬µ¿∩ halloc ó«ºóαáΘáÑΓ char-huge π¬áºáΓѽ∞ ¡á  ºáσóáτÑ¡-
  2399.          ¡«Ñ »α«ßΓαá¡ßΓó«.
  2400.                é  »á¼∩Γ¿,  ¡á ¬«Γ«απε π¬áºδóáÑΓ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ, úá-
  2401.          αá¡Γ¿α«óá¡« óδαáó¡¿óá¡¿Ñ ñ½∩ σαá¡Ñ¡¿∩ ½εí«ú« Γ¿»á «íΩѬΓá.  ùΓ«íδ
  2402.          »«½πτ¿Γ∞  π¬áºáΓѽ∞ ¡á Γ¿», «Γ½¿τ¡δ⌐ «Γ char, ¿ß»«½∞ºπÑΓß∩ »αÑ«í-
  2403.          αẫóáΓѽ∞ Γ¿»á  ó«ºóαáΘáѼ«ú«  º¡áτÑ¡¿∩.  é«ºóαáΘáѼ«Ñ  º¡áτÑ¡¿Ñ
  2404.          αáó¡« NULL, Ñß½¿ «ßΓὫß∞ ¡Ññ«ßΓáΓ«τ¡« »á¼∩Γ¿.
  2405.                æ¼.ΓᬪѠcalloc, free, hfree, malloc, realloc.
  2406.             
  2407.                Åα¿¼Ñα.
  2408.             
  2409.                #include <malloc.h>
  2410.             
  2411.                long huge *lalloc;
  2412.                .
  2413.                .
  2414.                .
  2415.             
  2416.                /*  ºáσóáΓδóáÑΓ »α«ßΓαá¡ßΓó«, ñ«ßΓáΓ«τ¡«Ñ ñ½∩ 80000 ñ½¿¡¡δσ
  2417.          µÑ½δσ, ¿ ¿¡¿µ¿á½¿º¿απÑΓ ¿σ ó 0 */
  2418.             
  2419.                lalloc=(long huge*)halloc(80000L,sizeof(long));
  2420.             
  2421.             
  2422.       
  2423.  
  2424.                                       - 135 -
  2425.          
  2426.          
  2427.                                      
  2428.            
  2429.                HFREE
  2430.            
  2431.                #include <malloc.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩  «íΩ∩ó½Ñ¡¿∩  Σπ¡¬-
  2432.          µ¿¿.
  2433.             
  2434.                void hfree(ptr);
  2435.                char huge *ptr; π¬áºáΓѽ∞ ¡á ºáσóáτÑ¡¡δ⌐ í½«¬ »á¼∩Γ¿.
  2436.             
  2437.                Ä»¿ßá¡¿Ñ:
  2438.             
  2439.                öπ¡¬µ¿∩  hfree «ßó«í«ªñáÑΓ í½«¬ »á¼∩Γ¿. Çαúπ¼Ñ¡Γ ptr π¬áºδ-
  2440.          óáÑΓ ¡á αá¡ÑÑ ºáσóáτÑ¡¡δ⌐ í½«¬ »á¼∩Γ¿ »«ßαÑñßΓó«¼ ó맮óá halloc.
  2441.                ù¿ß½«¼ «ßó«í«ªñÑ¡¡δσ íá⌐Γ«ó ∩ó½∩ÑΓß∩ τ¿ß½« íá⌐Γ«ó,  «»αÑñÑ-
  2442.          ½Ñ¡¡δσ  »α¿ ºáσóáΓÑ í½«¬á. Å«ß½Ñ ó맮óá «ßó«í«ñ¿óΦ¿Ñß∩ í½«¬¿ »α¿-
  2443.          ú«ñ¡δ ¬ αẼÑΘÑ¡¿ε.
  2444.             
  2445.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2446.             
  2447.                é«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
  2448.                æ¼.ΓᬪѠhalloc.
  2449.             
  2450.                çá¼Ñτá¡¿Ñ! Å«»δΓ¬á «ßó«í«ñ¿Γ∞ ¡ÑóÑα¡δ⌐  ptr  (π¬áºáΓѽ∞  ¡Ñ
  2451.          ºáσóáΓδóáÑΓß∩  »«ßαÑñßΓó«¼ ó맮óá halloc) ¼«ªÑΓ »α¿óÑßΓ¿ ¬ »«ß½Ñ-
  2452.          ñπεΘѼπ ºáσóáΓπ ¿ óδºóáΓ∞ «Φ¿í¬π.
  2453.             
  2454.                Åα¿¼Ñα.
  2455.             
  2456.                #include <malloc.h>
  2457.                #include <stdio.h>
  2458.             
  2459.                char huge *alloc;
  2460.             
  2461.                /* ºáσóáΓδóáÑΓ 80000 íá⌐Γ«ó ¿ «ßó«í«ªñáÑΓ ¿σ */
  2462.             
  2463.                alloc=halloc(80000L, sizeof (char));
  2464.                .
  2465.                .
  2466.                .
  2467.                if (alloc !=NULL)
  2468.             
  2469.                /* »α«óÑα∩ÑΓ ¡á »αáó¿½∞¡«ßΓ∞ π¬áºáΓѽ∩ */
  2470.             
  2471.                hfree(alloc);
  2472.             
  2473.                /* «ßó«í«ªñáÑΓ »á¼∩Γ∞ ñ½∩ heap */
  2474.             
  2475. .
  2476.                                       - 136 -
  2477.          
  2478.             
  2479.  
  2480.                HYPOT
  2481.             
  2482.                #include <math.h>
  2483.  
  2484.                double hypot(x,y);
  2485.                double x,y; º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
  2486.             
  2487.                Ä»¿ßá¡¿Ñ:
  2488.                 
  2489.                öπ¡¬µ¿∩ hypot  óδτ¿ß½∩ÑΓ  ñ½¿¡π  ú¿»«ΓÑ¡πºδ  »α∩¼«πú«½∞¡«ú«
  2490.          ΓαÑπú«½∞¡¿¬á ß ºáñá¡¡«⌐ ñ½¿¡«⌐ ñóπσ ßΓ«α«¡ x ¿ y. é맮ó hypot φ¬-
  2491.          ó¿óá½Ñ¡ΓÑ¡ ß½ÑñπεΘѼπ:
  2492.                sqrt(x*x + y*y);
  2493.             
  2494.             
  2495.                é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  2496.             
  2497.                öπ¡¬µ¿∩  hypot  ó«ºóαáΘáÑΓ ñ½¿¡π ú¿»«ΓÑ¡πºδ. é ß½πτáÑ »ÑαÑ-
  2498.          »«½¡Ñ¡¿∩ αѺπ½∞ΓáΓá, hypot πßΓá¡áó½¿óáÑΓ errno ó ERANGE ¿ ó«ºóαá-
  2499.          ΘáÑΓ º¡áτÑ¡¿Ñ HUGE.
  2500.                æ¼.ΓᬪѠcabs.
  2501.             
  2502.                Åα¿¼Ñα.
  2503.             
  2504.                #include <math.h>
  2505.             
  2506.                double x,y,z;
  2507.             
  2508.                x = 3.0;
  2509.                y = 4.0;
  2510.                z = hypot(x,y);
  2511.                printf("Hypotenuse=%2.1f\n",z);
  2512.             
  2513.                ìá óδσ«ñÑ:
  2514.                 
  2515.                Hypotenuse = 5.0
  2516.                 
  2517. .
  2518.          
  2519.          
  2520.