home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-05-17 | 97.5 KB | 2,366 lines |
- - 174 -
-
-
- PERROR
-
- #include <stdlib.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩
- «í∞∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿
-
- void perror(string);
- char *string; ß««íΘÑ¡¿Ñ, »«ßΓáó½∩Ѽ«Ñ
- »«½∞º«óáΓѽѼ
-
- int errno; ßτÑΓτ¿¬ «Φ¿í«¬
- int sys_nerr; τ¿ß½« ß¿ßΓѼ¡δσ ß««íΘÑ-
- ¡¿⌐
- char sts_errlist[sys_nerr]; ¼áßß¿ó ß««íΘÑ¡¿⌐ «í
- «Φ¿í¬áσ.
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ perror »ÑτáΓáÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ ó stderr. é
- φΓ«¼ ß««íΘÑ¡¿¿ áαúπ¼Ñ¡Γ string »ÑτáΓáÑΓß∩ »Ñαóδ¼, ºáΓѼ »ÑτáΓáÑΓ-
- ß∩ ñó«ÑΓ«τ¿Ñ, ß¿ßΓѼ¡«Ñ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ ñ½∩ »«ß½Ññ¡Ñú« í¿í½¿-
- «ΓÑτ¡«ú« ó맮óá, óδαáí«ΓáóΦÑú« «Φ¿í¬π, ¿ ¡«óá∩ ßΓ᫬á. 쫼Ñα ñÑ⌐-
- ßΓó¿Γѽ∞¡«⌐ «Φ¿í¬¿ σαá¡¿Γß∩ ó »ÑαѼѡ¡«⌐ errno, ¬«Γ«αá∩ «íΩ∩ó½Ñ¡á
- ¡á ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ. æ¿ßΓѼ¡«Ñ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ ñ«ßΓπ»¡« τÑαѺ
- »ÑαѼѡ¡πε sys_errlist, ¬«Γ«αá∩ ∩ó½∩ÑΓß∩ ¼áßß¿ó«¼ ß««íΘÑ¡¿⌐ ñ½∩
- ßτÑΓτ¿¬á «Φ¿í«¬.
- öπ¡¬µ¿∩ perror »ÑτáΓáÑΓ »α¿í½¿º¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ «í «Φ¿í-
- ¬Ñ, ¿ß»«½∞ºπ∩ º¡áτÑ¡¿Ñ errno ¬á¬ ¿¡ñÑ¬ß ñ½∩ sys_errlist. ç¡áτÑ¡¿Ñ
- »ÑαѼѡ¡«⌐ sys_nerr «»αÑñѽ∩ÑΓß∩ ¬á¬ ¼á¬ß¿¼á½∞¡«Ñ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó
- ó ¼áßß¿óÑ sys_errlist.
- ùΓ«íδ óδαáí«ΓáΓ∞ »αáó¿½∞¡δ⌐ αѺπ½∞ΓáΓ, Σπ¡¬µ¿∩ perror ñ«½ª-
- ¡á íδΓ∞ óδºóá¡á ßαáºπ ªÑ »«ß½Ñ í¿í½¿«ΓÑτ¡«⌐ »α«µÑñπαδ, ó«ºóαáΘáε-
- ΘÑ⌐ «Φ¿í¬π. ê¡áτÑ º¡áτÑ¡¿Ñ errno ¼«ªÑΓ íδΓ∞ »ÑαѺỿßá¡« ñ½∩
- »«ß½ÑñπεΘ¿σ ó맮ó«ó.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ perror ¡Ñ ó«ºóαáΘáÑΓ ¡¿¬á¬«ú« º¡áτÑ¡¿∩.
- æ¼. Γá¬ªÑ clearerr, ferror, strerror.
-
- çá¼Ñτá¡¿Ñ. é MS DOS ¡Ñ¬«Γ«αδÑ º¡áτÑ¡¿∩ errno, »α¿óÑñÑ¡¡δÑ ó
- <errno.h>, ¡Ñ ¿ß»«½∞ºπεΓß∩. 漫Γα¿ΓÑ »α¿½«ªÑ¡¿Ñ "æ««íΘÑ¡¿Ñ «í
- «Φ¿í¬áσ", úñÑ »α¿óÑñÑ¡ ß»¿ß«¬ º¡áτÑ¡¿⌐ errno, ¿ß»«½∞ºπѼδσ ó MS
- DOS, ¿ ß««ΓóÑΓßΓóπεΘ¿Ñ ß««íΘÑ¡¿∩ «í «Φ¿í¬áσ. ä½∩ º¡áτÑ¡¿∩ errno,
- ¡Ñ ¿ß»«½∞ºπεΘÑú«ß∩ ó MS DOS, Σπ¡¬µ¿∩ perror »ÑτáΓáÑΓ »πßΓπε ßΓα«-
- ¬π.
-
-
- Åα¿¼Ñα.
-
- #include <fcntl.h>
- #include <sys\types.h>
- #include <sys\stat.h>
- #include <io.h>
- #include <stdlib.h>
-
-
- - 175 -
-
-
- int fh1, fh2;
-
- fh1 = open("data1", O_RDONLY);
- if (fh1 == -1)
- perror("open failed on input file");
-
- fh2 = open("data2", O_WRONLY:O_TRUNC:O_CREAT,
- S_IREAD:S_IWRITE);
- if (fh2 == -1)
- perror("open failed on output file");.
-
-
- POW
-
- #include <math.h>
-
- double pow(x,y);
- double x; ó«ºó«ñ¿¼«Ñ τ¿ß½«
- double y; ßΓѻѡ∞ τ¿ß½á x
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ pow óδτ¿ß½∩ÑΓ x, ó«ºóÑñÑ¡¡«Ñ ó ßΓѻѡ∞ y.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ pow ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ x ó ßΓѻѡ¿ y. àß½¿ y αáó¡á
- 0, pow ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 1. àß½¿ x αáó¡« 0 ¿ y «Γα¿µáΓѽ∞¡á∩,
- pow πßΓá¡áó½¿óáÑΓ errno ó ERANGE ¿ ó«ºóαáΘáÑΓ HUGE. àß½¿ x «Γα¿-
- µáΓѽ∞¡«Ñ, á y ¡Ñ ∩ó½∩ÑΓß∩ µÑ½«⌐, Σπ¡¬µ¿∩ »ÑτáΓáÑΓ ß««íΘÑ¡¿Ñ «í
- «Φ¿í¬Ñ DOMAIN ó stderr, πßΓá¡áó½¿óáÑΓ errno ó ERANGE ¿ ó«ºóαáΘáÑΓ
- ½¿í« »«½«ª¿Γѽ∞¡«Ñ, ½¿í« «Γα¿µáΓѽ∞¡«Ñ º¡áτÑ¡¿Ñ HUGE. é ß½πτáÑ
- »ÑαÑ»«½¡Ñ¡¿∩ ¿½¿ »«ΓÑα¿ º¡áτ¿¼«ßΓ¿ ¡¿¬á¬«ú« ß««íΘÑ¡¿∩ ¡Ñ »ÑτáΓá-
- ÑΓß∩. æ¼.Γá¬ªÑ exp, log, sqrt.
-
- Åα¿¼Ñα.
-
- #include <math.h>
- double x = 2.0, y = 3.0, z;
- .
- .
- .
- z = pow(x,y); /* z = 8.0 */
-
-
- PRINTF
-
- #include <stdio.h>
-
- int printf (format-string [, argument...]);
- char *format-string; ßΓ᫬á π»αáó½Ñ¡¿∩ Σ«α¼áΓ«¼.
-
-
-
-
- - 176 -
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ printf Σ«α¼áΓ¿απÑΓ ¿ »ÑτáΓáÑΓ ¡áí«αδ ß¿¼ó«½«ó ¿
- º¡áτÑ¡¿⌐ ó óδσ«ñ¡«⌐ ßΓá¡ñáαΓ¡δ⌐ »«Γ«¬ stdout. æΓ᫬á Σ«α¼áΓá ß«ß-
- Γ«¿Γ ¿º «íδτ¡δσ ß¿¼ó«½«ó, escape-»«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐ ¿, Ñß½¿ ºá
- ßΓ᫬«⌐ Σ«α¼áΓá ß½ÑñπεΓ áαúπ¼Ñ¡Γδ, ÑΘÑ ¿ ߻ѵ¿Σ¿¬áµ¿¿ Σ«α¼áΓá.
- Äíδτ¡δÑ ß¿¼ó«½δ ¿ escape-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿ »α«ßΓ« ¬«»¿απεΓß∩ ó
- stdout ó »«α∩ñ¬Ñ ¿σ »«∩ó½Ñ¡¿∩.
-
- ìá»α¿¼Ñα, ßΓ᫬á
-
- printf ("Line one\n\t\tLine two\n");
-
- óδαáí«ΓáÑΓ ¡á óδó«ñÑ
-
- Line one
- Line two.
- ü«½ÑÑ »«ñα«í¡« escape-»«ß½Ññ«óáΓѽ∞¡«ßΓ¿ «»¿ßδóáεΓß∩ ó ú½á-
- óÑ 2.2.4 απ¬«ó«ñßΓóá MSC Compiler Language Reference.
-
- àß½¿ ºá ßΓ᫬«⌐ Σ«α¼áΓá ß½ÑñπεΓ áαúπ¼Ñ¡Γδ arguments, Γ« φΓá
- ßΓ᫬á Γá¬ªÑ ñ«½ª¡á ß«ñÑαªáΓ∞ ߻ѵ¿Σ¿¬áµ¿¿ Σ«α¼áΓá, «»αÑñѽ∩εΘ¿Ñ
- Σ«α¼áΓ óδó«ñá φΓ¿σ áαúπ¼Ñ¡Γ«ó. æ»Ñµ¿Σ¿¬áµ¿∩ Σ«α¼áΓá óßÑúñá ¡áτ¿-
- ¡áÑΓß∩ ß ß¿¼ó«½á º¡á¬á »α«µÑ¡Γá (%). ì¿ªÑ « ¡Ñ¼ «»¿ßδóáÑΓß∩ »«ñ-
- α«í¡ÑÑ.
- æΓ᫬á Σ«α¼áΓá τ¿ΓáÑΓß∩ ß½Ñóá ¡á»αáó«. è«úñá óßΓαÑτáÑΓß∩
- »Ñαóá∩ ߻ѵ¿Σ¿¬áµ¿∩ Σ«α¼áΓá (Ñß½¿ «¡á ÑßΓ∞), Γ« º¡áτÑ¡¿Ñ »Ñαó«ú«
- áαúπ¼Ñ¡Γá »«ß½Ñ ßΓ᫬¿ Σ«α¼áΓá »αÑ«íαẫóδóáÑΓß∩ ¿ óδó«ñ¿Γß∩ ß«ú-
- ½áß¡« ºáñá¡¡«⌐ ߻ѵ¿Σ¿¬áµ¿¿. éΓ«αá∩ ߻ѵ¿Σ¿¬áµ¿∩ Σ«α¼áΓá óδºδóáÑΓ
- »αÑ«íαẫóá¡¿Ñ ¿ óδó«ñ óΓ«α«ú« áαúπ¼Ñ¡Γá ¿ Γᬠñá½ÑÑ, ñ« ¬«¡µá
- ßΓ᫬¿ Σ«α¼áΓá. àß½¿ áαúπ¼Ñ¡Γ«ó í«½∞ΦÑ, τѼ ߻ѵ¿Σ¿¬áµ¿⌐ Σ«α¼áΓá,
- Γ« φΓ¿ ñ«»«½¡¿Γѽ∞¡δÑ áαúπ¼Ñ¡Γδ ¿ú¡«α¿απεΓß∩. ÉѺπ½∞ΓáΓ ∩ó½∩ÑΓß∩
- ¡Ñ«»αÑñѽѡ¡δ¼, Ñß½¿ áαúπ¼Ñ¡Γ«ó ¡Ññ«ßΓáΓ«τ¡« ñ½∩ óßÑσ ߻ѵ¿Σ¿¬á-
- µ¿⌐ Σ«α¼áΓá.
- æ»Ñµ¿Σ¿¬áµ¿∩ Σ«α¼áΓá ¿¼ÑÑΓ ß½ÑñπεΘπε Σ«α¼π:
-
- %σ[flags][wigth][.precision][{F:N:h:I}]type.
-
- èáªñ«Ñ »«½Ñ ó ߻ѵ¿Σ¿¬áµ¿¿ Σ«α¼áΓá ∩ó½∩ÑΓß∩ «Γñѽ∞¡δ¼ ß¿¼-
- 󫽫¼ ¿½¿ τ¿ß½«¼, óδαáªáεΘ¿¼ «Γñѽ∞¡πε «»µ¿ε Σ«α¼áΓá. 濼ó«½
- type, »«∩ó½∩εΘ¿⌐ß∩ »«ß½Ñ »«ß½Ññ¡Ñú« ¡Ñ«í∩ºáΓѽ∞¡«ú« »«½∩ Σ«α¼áΓá,
- «»αÑñѽ∩ÑΓ áαúπ¼Ñ¡Γ ¬á¬ ß¿¼ó«½, ßΓα«¬π ¿½¿ τ¿ß½«. (æ¼. Γáí½.
- R.1.).
- Åα«ßΓÑ⌐Φá∩ ߻ѵ¿Σ¿¬áµ¿∩ Σ«α¼áΓá ß«ñÑαª¿Γ Γ«½∞¬« ß¿¼ó«½
- º¡á¬á »α«µÑ¡Γá ¿ ß¿¼ó«½ Γ¿»á (¡á»α¿¼Ñα, %S). ìÑ«í∩ºáΓѽ∞¡δÑ
- »«½∩ π»αáó½∩εΓ ñαπú¿¼¿ á߻ѬΓἿ Σ«α¼áΓ¿α«óá¡¿∩, ¬á¬ «»¿ßδóáÑΓß∩
- ¡¿ªÑ.
-
- ÅÄïà ÄÅêæÇìêà
-
- flags 鬽ετÑ¡¿Ñ óδó«ñá ¿ »ÑτáΓ¿ º¡á¬«ó,
- »α«íѽ«ó, ñÑß∩Γ¿τ¡δσ Γ«τѬ,
- ó«ß∞¼Ñα¿τ¡δσ ¿ ΦÑßΓ¡áñµáΓÑα¿τ¡δσ
- »αÑΣ¿¬ß«ó. (æ¼. Γáí½. R.2.).
-
- width î¿¡¿¼á½∞¡«Ñ τ¿ß½« óδó«ñ¿¼δσ ß¿¼ó«½«ó.
-
-
- - 177 -
-
-
- precision îá¬ß¿¼á½∞¡«Ñ τ¿ß½« ß¿¼ó«½«ó, »ÑτáΓáѼδσ
- ¡á óßѼ ¿½¿ τáßΓ¿ »«½∩ óδó«ñá; ¿½¿
- ¼¿¡¿¼á½∞¡«Ñ τ¿ß½« µ¿Σα ñ½∩ »ÑτáΓ¿
- µÑ½δσ º¡áτÑ¡¿⌐. (æ¼. Γáí½. R.3.).
-
- F, N ÅαÑΣ¿¬ßδ, »«ºó«½∩εΘ¿Ñ »«½∞º«óáΓѽε over-
- ride, »« π¼«½τá¡¿ε, áñαÑßᵿε ß«ú½áΦÑ-
- ¡¿⌐ ¼«ñѽÑ⌐ »á¼∩Γ¿.
-
- F êß»«½∞ºπÑΓß∩ ñ½∩ ¼á½«⌐ ¼«ñѽ¿ ñ½∩ »ÑτáΓ¿
- º¡áτÑ¡¿∩, «íΩ∩ó½Ñ¡¡«ú« far.
-
- N êß»«½∞ºπÑΓß∩ ñ½∩ ßαÑñ¡Ñ⌐, í«½∞Φ«⌐ ¿
- huge-¼«ñѽÑ⌐ ñ½∩ near-º¡áτÑ¡¿⌐.
-
- F ¿ N ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ Γ«½∞¬« ß
- Γ¿»á¼¿ ß¿¼ó«½«ó s ¿ p, »«ß¬«½∞¬π «¡¿
- π¼ÑßΓ¡δ Γ«½∞¬« ß áαúπ¼Ñ¡ΓἿ,
- »αÑñßΓáó½∩εΘ¿¼¿ π¬áºáΓѽ∞.
-
- h, l ÅαÑñ»«½áúáѼδ⌐ αẼÑα áαúπ¼Ñ¡Γá:
-
- h ¿ß»«½∞ºπÑΓß∩ ó ¬áτÑßΓóÑ »αÑΣ¿¬ßá ß
- µÑ½δ¼¿ Γ¿»á¼¿ d, i, o, x, X ñ½∩
- «»αÑñѽѡ¿∩, τΓ« áαúπ¼Ñ¡Γ ∩ó½∩ÑΓß∩
- short int.
-
- l ¿ß»«½∞ºπÑΓß∩ ó ¬áτÑßΓóÑ »αÑΣ¿¬ßá ß
- Γ¿»á¼¿ d, i, o, x, X ñ½∩ «í«º¡áτÑ¡¿∩,
- τΓ« áαúπ¼Ñ¡Γ ∩ó½∩ÑΓß∩ long int. 濼ó«½
- l ¿ß»«½∞ºπÑΓß∩ Γá¬ªÑ ¬á¬ »αÑΣ¿¬ß ß
- Γ¿»á¼¿ e, E, f, g, G ñ½∩ «»αÑñѽѡ¿∩,
- τΓ« áαúπ¼Ñ¡Γ ∩ó½∩ÑΓß∩ ߬«αÑÑ double,
- 祬 float.
-
- àß½¿ ºá ß¿¼ó«½«¼ º¡á¬á »α«µÑ¡Γá (%) ß½ÑñπÑΓ ß¿¼ó«½, ¡Ñ
- «í«º¡áτáεΘ¿⌐ Γ¿» Σ«α¼áΓá, Γ« φΓ«Γ ß¿¼ó«½ ¬«»¿απÑΓß∩ ó »«Γ«¬
- stdout. ìá»α¿¼Ñα, ñ½∩ »ÑτáΓ¿ ß¿¼ó«½á º¡á¬á »α«µÑ¡Γá ¿ß»«½∞ºπÑΓß∩
- ¬«¼í¿¡áµ¿∩ %%.
-
-
- Æáí½¿µá R.1.
-
- Æ¿»δ ß¿¼ó«½«ó Σπ¡¬µ¿¿ printf
-
-
- æêîéÄï ÆêÅ ÇÉâôîàìÆÇ öÄÉîÇÆ é¢éÄäÇ
-
- d µÑ½δ⌐ µÑ½«τ¿ß½Ñ¡¡δ⌐ ñÑß∩Γ¿τ¡δ⌐
- º¡á¬«óδ⌐
-
- i µÑ½δ⌐ µÑ½«τ¿ß½Ñ¡¡δ⌐ ñÑß∩Γ¿τ¡δ⌐
- º¡á¬«óδ⌐
-
- u µÑ½δ⌐ íѺº¡á¬«óδ⌐ µÑ½«τ¿ß½Ñ¡¡δ⌐
-
- - 178 -
-
-
- ñÑß∩Γ¿τ¡δ⌐
-
- o µÑ½δ⌐ íѺº¡á¬«óδ⌐ ó«ß∞¼Ñα¿τ¡δ⌐
- µÑ½δ⌐
-
- x µÑ½δ⌐ íѺº¡á¬«óδ⌐ ΦÑßΓ¡áñµáΓÑ-
- α¿τ¡δ⌐ µÑ½δ⌐, ¿ß»«½∞ºπεΘ¿⌐
- "abcdef"
-
- X µÑ½δ⌐ íѺº¡á¬«óδ⌐ ΦÑßΓ¡áñµáΓÑ-
- α¿τ¡δ⌐ µÑ½δ⌐, ¿ß»«½∞ºπεΘ¿⌐
- "ABCDEF".
-
- f ß »½áóáεΘÑ⌐ º¡á¬«ó«Ñ º¡áτÑ¡¿Ñ, ¿¼ÑεΘÑÑ
- Γ«τ¬«⌐ Σ«α¼π [-]dddd.dddd, úñÑ
- dddd - «ñ¡á ¿½¿ í«½ÑÑ
- ñÑß∩Γ¿τ¡δσ µ¿Σα. 諽¿-
- τÑßΓó« µ¿Σα »ÑαÑñ
- ñÑß∩Γ¿τ¡«⌐ Γ«τ¬«⌐ ºáó¿ß¿Γ
- «Γ óѽ¿τ¿¡δ τ¿ß½á, á
- ¬«½¿τÑßΓó« µ¿Σα »«ß½Ñ
- ñÑß∩Γ¿τ¡«⌐ Γ«τ¬¿ ºáó¿ß¿Γ
- «Γ ΓαÑíπѼ«⌐ Γ«τ¡«ßΓ¿.
-
- e ß »½áóáεΘÑ⌐ º¡á¬«ó«Ñ º¡áτÑ¡¿Ñ, ¿¼ÑεΘÑÑ
- Γ«τ¬«⌐ Σ«α¼π [-]d.dddde[sign]ddd,
- úñÑ d - ñÑß∩Γ¿τ¡á∩ µ¿Σαá,
- dddd - «ñ¡á ¿½¿ í«½ÑÑ
- ñÑß∩Γ¿τ¡δσ∩ µ¿Σα, ddd -
- α«ó¡« Γα¿ ñÑß∩Γ¿τ¡δσ
- µ¿Σαδ, ¿ sign - ½¿í« "+",
- ½¿í« "-".
-
- E ß »½áóáεΘÑ⌐ ¿ñÑ¡Γ¿τ¡« Σ«α¼áΓπ "e", ºá
- Γ«τ¬«⌐ ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ«
- ó¼ÑßΓ« "e" óó«ñ¿Γß∩ "E".
-
- g ß »½áóáεΘÑ⌐ º¡á¬«ó«Ñ º¡áτÑ¡¿Ñ, αáß»Ñτá-
- Γ«τ¬«⌐ ΓδóáѼ«Ñ ó Σ«α¼áΓÑ "f" ¿½¿
- "e", ¿ ∩ó½∩εΘÑÑß∩ í«½ÑÑ
- ¬«¼»á¬Γ¡δ¼ ñ½∩ óδíαá¡¡δσ
- º¡áτÑ¡¿∩ ¿ Γ«τ¡«ßΓ¿ (¬á¬
- »«¬áºá¡« ¡¿ªÑ). ö«α¼áΓ "e"
- ¿ß»«½∞ºπÑΓß∩, Γ«½∞¬« ¬«úñá
- º¡áτÑ¡¿Ñ φ¬ß»«¡Ñ¡Γδ ¼Ñ¡∞ΦÑ
- -4 ¿½¿ í«½∞ΦÑ, τѼ
- precision. éÑñπΘ¿Ñ ¡π½¿
- «ΓßѬáεΓß∩, ¿ ñÑß∩Γ¿τ¡á∩
- Γ«τ¬á »«∩ó½∩ÑΓß∩ Γ«úñá,
- ¬«úñá ºá ¡Ñ⌐ ß½ÑñπÑΓ «ñ¡á
- ¿½¿ ¡Ñ߬«½∞¬« µ¿Σα.
-
- G ß »½áóáεΘÑ⌐ ¿ñÑ¡Γ¿τ¡« Σ«α¼áΓπ "g", ºá
- Γ«τ¬«⌐ ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ«
- ó¼ÑßΓ« "e" óó«ñ¿Γß∩
-
- - 179 -
-
-
- φ¬ß»«¡Ñ¡Γá "E" (Ñß½¿ «¡á
- ¡Ñ«íσ«ñ¿¼á).
-
- c ß¿¼ó«½∞¡δ⌐ «Γñѽ∞¡δ⌐ ß¿¼ó«½.
-
- s ßΓ᫬«óδ⌐ ß¿¼ó«½δ »ÑτáΓáεΓß∩ ñ«
- »Ñαó«ú« ¡π½Ñó«ú« ß¿¼ó«½á
- '\o' ¿½¿ ñ« ñ«ßΓ¿ªÑ¡¿∩
- precision.
-
- n π¬áºáΓѽ∞ ¡á τ¿ß½« ß¿¼ó«½«ó πß»ÑΦ¡«
- µÑ½δ⌐ ºá»¿ßδóáÑΓß∩ ó »«Γ«¬
- stream; φΓ« º¡áτÑ¡¿Ñ
- σαá¡¿Γß∩ ó µÑ½«¼, áñαÑß
- ¬«Γ«α«ú« óδí¿αáÑΓß∩ ¬á¬
- áαúπ¼Ñ¡Γ.
-
- p far-π¬áºáΓѽ∞ »ÑτáΓ∞ áñαÑßá, π¬áºδóáѼ«-
- ú« áαúπ¼Ñ¡Γ«¼, ó Σ«α¼Ñ
- xxxx:yyyy, úñÑ xxxx
- ∩ó½∩ÑΓß∩ ßÑú¼Ñ¡Γ«¼, yyyy
- ∩ó½∩ÑΓß∩ αáºóÑΓó½Ñ¡¿Ñ¼, á
- µ¿Σαδ x ¿ y ∩ó½∩εΓß∩
- ΦÑßΓ¡áñµáΓÑα¿τ¡δ¼¿ µ¿ΣαἿ
- óÑασ¡Ñú« αÑú¿ßΓαá (upper-
- case). %Np »ÑτáΓáÑΓ Γ«½∞¬«
- áñαÑß αáºóÑΓó½Ñ¡¿∩ yyyy.
- ū߬«½∞¬π %p »αÑñ»«½áúáÑΓ
- π¬áºáΓѽ∞ ¡á far-º¡áτÑ¡¿Ñ,
- áαúπ¼Ñ¡Γδ p-π¬áºáΓѽ∩
- ¼«úπΓ íδΓ∞ ßíα«ΦÑ¡δ ¬ far
- ó ¼á½Ñ¡∞¬¿σ ¼«ñѽ∩σ
- »α«úαá¼¼.
-
-
-
- Æáí½¿µá R.2.
-
- 濼ó«½δ flags Σπ¡¬µ¿¿ printf
-
- FLAG(*) çìÇùàìêà ÅÄ ôîÄïùÇìê₧
-
- - æ¼ÑΘÑ¡¿Ñ αѺπ½∞ΓáΓá ó½Ñó« æ¼ÑΘÑ¡¿Ñ ó»αáó«
- ó¡πΓα¿ »«½∩ wigth
-
-
- + Åα¿ß«Ññ¿¡Ñ¡¿Ñ º¡á¬á ¬ ç¡á¬ "-" »«∩ó-
- óδó«ñ¿¼«¼π º¡áτÑ¡¿ε, Ñß½¿ ½∩ÑΓß∩ Γ«½∞¬«
- «¡« ¿¼ÑÑΓ º¡á¬«óδ⌐ Γ¿» ñ½∩ «Γα¿µáΓѽ∞-
- ¡δσ º¡á¬«óδσ
- º¡áτÑ¡¿⌐
-
- blank è óδó«ñ¿¼«¼π º¡áτÑ¡¿ε »α¿- üѺ »α«íѽá
- (' ') ß«Ññ¿¡∩ÑΓß∩ ' ', Ñß½¿ óδ-
- ó«ñ¿¼«Ñ º¡áτÑ¡¿Ñ ∩ó½∩ÑΓß∩
-
- - 180 -
-
-
- º¡á¬«óδ¼ ¿ »«½«ª¿Γѽ∞¡δ¼;
- Σ½áú "+" override Σ½áú
- blank, Ñß½¿ «íá ÑßΓ∞, ¿
- »«½«ª¿Γѽ∞¡«Ñ º¡á¬«ó«Ñ
- º¡áτÑ¡¿Ñ óδó«ñ¿Γß∩ ó¼ÑßΓÑ
- ß« º¡á¬«¼
-
- # Åα¿ ¿ß»«½∞º«óá¡¿¿ ß Σ«α¼á- üѺ »αÑΣ¿¬ßá
- ΓἿ o, x, X, Σ½áú # »α¿-
- ß«Ññ¿¡∩ÑΓ ¬ ½εí«¼π ¡Ñ¡π½Ñ-
- ó«¼π óδó«ñ¿¼«¼π º¡áτÑ¡¿ε,
- ß««ΓóÑΓßΓóÑ¡¡«, 0, 0σ, 0ò
-
- è«úñá Σ½áú # ¿ß»«½∞ºπÑΓß∩ äÑß∩Γ¿τ¡á∩ Γ«τ-
- ó Σ«α¼áΓÑ e, E, f, «¡ ¬á »«∩ó½∩ÑΓß∩
- «»αÑñѽ∩ÑΓ ¡á½¿τ¿Ñ ñÑß∩- Γ«½∞¬« Γ«úñá,
- Γ¿τ¡«⌐ Γ«τ¬¿ ó óδó«ñ¿¼«¼ ¬«úñá ºá ¡Ñ⌐
- º¡áτÑ¡¿¿ ¿ñπΓ µ¿Σαδ
-
- è«úñá Σ½áú # ¿ß»«½∞ºπÑΓß∩ äÑß∩Γ¿τ¡á∩ Γ«τ-
- ó Σ«α¼áΓÑ g, G, «¡ «»αÑñÑ- ¬á »«∩ó½∩ÑΓß∩
- ½∩ÑΓ ¡á½¿τ¿Ñ ñÑß∩Γ¿τ¡«⌐ Γ«½∞¬« Γ«úñá,
- Γ«τ¬¿ ó óδó«ñ¿¼«¼ º¡áτÑ¡¿¿ ¬«úñá ºá ¡Ñ⌐
- ¿ »αÑ»∩ΓßΓóπÑΓ «ΓßÑτÑ¡¿ε ¿ñπΓ µ¿Σαδ
- óÑñπΘ¿σ ¡π½Ñ⌐ éÑñπΘ¿Ñ ¡π½¿
- «ΓßѬáεΓß∩
-
- ö½áú # ¿ú¡«α¿απÑΓß∩, »α¿
- Ñú« ¿ß»«½∞º«óá¡¿¿ ó Σ«α¼á-
- Γáσ c, d, i, u, s
-
- Åα¿¼Ñτá¡¿Ñ. é Σ«α¼áΓÑ ß»Ñµ¿Σ¿¬áµ¿¿ ¼«ªÑΓ ß«ñÑαªáΓ∞ß∩ í«½ÑÑ,
- τѼ «ñ¿¡ flag.
-
- Width - ¡Ñ«Γα¿µáΓѽ∞¡«Ñ ñÑß∩Γ¿τ¡«Ñ µÑ½«Ñ, ¬«¡Γα«½¿απεΘÑÑ
- ¼¿¡¿¼á½∞¡«Ñ τ¿ß½« ¡á»ÑτáΓá¡¡δσ ß¿¼ó«½«ó. àß½¿ τ¿ß½« ß¿¼ó«½«ó ó
- º¡áτÑ¡¿¿ óδó«ñá ¼Ñ¡∞ΦÑ, τѼ ó width, ß½Ñóá ¿ ß»αáóá ñ«íáó½∩εΓß∩
- »α«íѽδ (ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, úñÑ «»αÑñѽѡ Σ½áú "-"), »«¬á ¼¿-
- ¡¿¼á½∞¡á∩ Φ¿α¿¡á ¡Ñ íπñÑΓ ñ«ßΓ¿ú¡πΓá. àß½¿ ¬ width »α¿ß«Ññ¿¡∩ÑΓß∩
- 0, Γ« 0 íπñπΓ ñ«íáó½∩Γ∞ß∩ ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ ñ«ßΓ¿ú¡πΓ ¼¿-
- ¡¿¼π¼ width. (¥Γ« ¡Ñ »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ τ¿ßѽ, ß¼ÑΘÑ¡¡δσ ó½Ñó«).
- æ»Ñµ¿Σ¿¬áµ¿∩ width ¡Ñ ΓαÑíπÑΓ «ΓßÑτÑ¡¿∩ º¡áτÑ¡¿∩; Ñß½¿ τ¿ß-
- ½« ß¿¼ó«½«ó óδó«ñ¿¼«ú« º¡áτÑ¡¿∩ í«½∞ΦÑ τѼ «»αÑñѽѡ« ó width,
- ¿½¿ ¡Ñ ºáñá¡« ó ¡Ñ¼, óßÑ º¡áτÑ¡¿∩ ß¿¼ó«½«ó αáß»ÑτáΓδóáεΓß∩ (»«ñ-
- ½ÑªáΓ ß»Ñµ¿Σ¿¬áµ¿¿ precision).
- é ߻ѵ¿Σ¿¬áµ¿¿ width ¼«ªÑΓ íδΓ∞ ºóѺñ«τ¬á (*), ¬«úñá ó¼ÑßΓ«
- º¡áτÑ¡¿∩ »«ñßΓáó½∩ÑΓß∩ ß««ΓóÑΓßΓóπεΘ¿⌐ Ѽπ áαúπ¼Ñ¡Γ ¿º ß»¿ß¬á áα-
- úπ¼Ñ¡Γ«ó. Çαúπ¼Ñ¡Γ width ñ«½ªÑ¡ »αÑñΦÑñßΓó«óáΓ∞ ß««ΓóÑΓßΓóπεΘѼπ
- º¡áτÑ¡¿ε.
- æ»Ñµ¿Σ¿¬áµ¿∩ precision ∩ó½∩ÑΓß∩ ¡Ñ«Γα¿µáΓѽ∞¡δ¼ ñÑß∩Γ¿τ¡δ¼
- µÑ½δ¼, ¬«Γ«α«¼π »αÑñΦÑñßΓóπÑΓ Γ«τ¬á (.), «»αÑñѽ∩εΘá∩ ¬«½¿τÑßΓó«
- »ÑτáΓáѼδσ ß¿¼ó«½«ó ¿½¿ ªÑ τ¿ß½« ñÑß∩Γ¿τ¡δσ ¼ÑßΓ.
- é «Γ½¿τ¿¿ «Γ ߻ѵ¿Σ¿¬áµ¿¿ width, ߻ѵ¿Σ¿¬áµ¿∩ precision
- ΓαÑíπÑΓ «ΓßÑτÑ¡¿∩ óδó«ñ¿¼«ú« º¡áτÑ¡¿∩ ¿½¿, ó ß½πτáÑ º¡áτÑ¡¿∩ ß
- »½áóáεΘÑ⌐ Γ«τ¬«⌐, Ñú« «¬απú½Ñ¡¿∩. é ß½πτáÑ »«ñßΓá¡«ó¬¿ áαúπ¼Ñ¡Γá
-
- - 181 -
-
-
- ¿º ß»¿ß¬á áαúπ¼Ñ¡Γ«ó ó ߻ѵ¿Σ¿¬áµ¿¿ precision ¼«ªÑΓ íδΓ∞ ºóѺ-
- ñ«τ¬á (*). é ß»¿ß¬Ñ áαúπ¼Ñ¡Γ«ó áαúπ¼Ñ¡Γ precision »αÑñΦÑñßΓóπÑΓ
- Σ«α¼áΓ¿απѼ«¼π º¡áτÑ¡¿ε. ÄíΩ∩ߡѡ¿Ñ º¡áτÑ¡¿⌐ precision, ó ºáó¿ß¿-
- ¼«ßΓ¿ «Γ Γ¿»á type ¿ ß½πτá∩, ¬«úñá precision »α«»πΘÑ¡«, »αÑñß-
- Γáó½Ñ¡« ó Γáí½¿µÑ R.3.
-
- Æáí½¿µá R.3.
-
- èá¬ Γ¿» type ó½¿∩ÑΓ ¡á º¡áτÑ¡¿Ñ precision ó Σπ¡¬µ¿¿ printf
-
-
- ÆêÅ çìÇùàìêà ÅÄ ôîÄïùÇìê₧
-
- d Precision «»αÑñѽ∩ÑΓ àß½¿ precision
- i ¼¿¡¿¼á½∞¡«Ñ τ¿ß½« »ÑτáΓáѼδσ αáó¡á 0 ¿½¿ »α«-
- u µ¿Σα. àß½¿ τ¿ß½« µ¿Σα ó »πΘÑ¡á, ¿½¿ Ñß½¿
- o áαúπ¼Ñ¡ΓÑ ¼Ñ¡∞ΦÑ, τѼ »«∩ó½∩ÑΓß∩ Γ«τ¬á
- x αẼÑα precision, ß½Ñóá (.) íѺ ¿ñπΘ¿σ
- X »ÑαÑñ óδó«ñ¿¼δ¼ º¡áτÑ¡¿Ñ¼ ºá ¡Ñ⌐ µ¿Σα, Γ«
- ñ«íáó½∩εΓß∩ ¡π½¿. àß½¿ τ¿ß½« precision πßΓá-
- µ¿Σα ¡Ñ »αÑó«ßσ«ñ¿Γ αẼÑα ¡áó½¿óáÑΓß∩ αáó-
- precision, º¡áτÑ¡¿Ñ ¡Ñ ¡«⌐ 1
- «ΓßѬáÑΓß∩
-
- e Precision «»αÑñѽ∩ÑΓ τ¿ß½« Precision »«
- E µ¿Σα, »ÑτáΓáѼδσ »«ß½Ñ π¼«½τá¡¿ε αáó¡á
- f ñÑß∩Γ¿τ¡«⌐ Γ«τ¬¿. ū߽Ññ¡∩∩ 6; Ñß½¿ «¡á αáó-
- »ÑτáΓáѼá∩ µ¿Σαá «¬απú½∩ÑΓß∩ ¡á 0 ¿½¿ »ÑαÑñ
- ¡Ñ⌐ »«∩ó½∩ÑΓß∩
- Γ«τ¬á (.) íѺ
- ß½ÑñπѼδσ ºá ¡Ñ⌐
- µ¿Σα, Γ«úñá
- ñÑß∩Γ¿τ¡á∩ Γ«τ¬á
- ¡Ñ »ÑτáΓáÑΓß∩
-
- g Precision «»αÑñѽ∩ÑΓ ÅÑτáΓáεΓß∩ óßÑ
- G ¼á¬ß¿¼á½∞¡«Ñ τ¿ß½« ó᪡δσ ó᪡δÑ (¼¡«ú«-
- (¼¡«ú«º¡áτ¡δσ) »ÑτáΓáѼδσ º¡áτ¡δÑ) µ¿Σαδ
- ß¿¼ó«½«ó
-
- c ìÑ »α«¿ßσ«ñ¿Γ ¡¿¬á¬«ú« ÅÑτáΓ∞ ß¿¼ó«½á
- ñÑ⌐ßΓó¿∩
-
- s Precision «»αÑñѽ∩ÑΓ ¼á¬ß¿- ÅÑτáΓ∞ ß¿¼ó«½«ó,
- ¼á½∞¡«Ñ τ¿ß½« »ÑτáΓáѼδσ »«¬á ¡Ñ óßΓαÑ-
- ß¿¼ó«½«ó Γ¿Γß∩ ¡π½Ñó«⌐
- 濼ó«½δ, »αÑóδΦáεΘ¿Ñ αẼÑα ß¿¼ó«½
- precision, ¡Ñ »ÑτáΓáεΓß∩
-
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¬«½¿τÑßΓó« ¡á»ÑτáΓá¡¡δσ ß¿¼ó«½«ó.
- æ¼. Γá¬ªÑ fprintf, scanf, sprintf, vfprintf, vprintf,
- vsprintf.
-
- - 182 -
-
-
-
- Åα¿¼Ñα:
-
- main ()
-
- /* Σ«α¼áΓ¿α«óá¡¿Ñ ¿ »ÑτáΓ∞ αẽ¿τ¡δσ ñá¡¡δσ */
-
- {
- char ch = 'h', *string = "computer";
- int count = 234, *ptr, hex = 0x10, oct = 010, dec = 10;
- double fp = 251.7366;
-
- printf("%d %+d %06d %X %x %o\n\n",
- count, count, count, count, count, count);
-
- printf("1234567890123%n45678901234567890\n\n", &count);
- printf("Value of count should be 13; count = %d\n\n",
- count);
-
- printf("%10c%5c\n\n", ch, ch);
-
- printf("%25s\n%25.4s\n\n", string, string);
-
- printf("%f %.2f %e %E\n\n", fp, fp, fp, fp);
-
- printf("%i %i %i\n\n", hex, oct, dec);
-
- ptr = &count;
- printf("%Np %p %Fp\n",
- ptr, (int far *) ptr, (int far *)ptr);
- }
-
- Æ«úñá ¡á óδó«ñÑ »«½πτ¿Γß∩ ß½ÑñπεΘÑÑ:
-
- 234 +234 000234 EA ea 352
-
- 123456789012345678901234567890
-
-
- Value of count should be 13; count = 13;
- h h
- computer
- comp
-
- 251.736600 251.74 2.517366e+002 2.517366E+002
-
- 16 8 10
-
- 127A 1328:127A 1328:127A.
-
-
- PUTC-PUTCHAR
-
- #include <stdio.h>
-
-
- - 183 -
-
-
- int putc (c, stream); ºá»¿ßδóáÑΓ ß¿¼ó«½ ó »«Γ«¬ stream
- int c; ºá»¿ßδóáѼδ⌐ ß¿¼ó«½
-
- FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE
-
- int putchar(c); ºá»¿ßδóáÑΓ ß¿¼ó«½ ó <stdout>
- int c; ºá»¿ßδóáѼδ⌐ ß¿¼ó«½
-
-
- Ä»¿ßá¡¿Ñ.
-
- Åα«µÑñπαá putc ºá»¿ßδóáÑΓ «Γñѽ∞¡δ⌐ ß¿¼ó«½ "ß" ó ΓѬπΘπε
- »«º¿µ¿ε óδσ«ñ¡«ú« »«Γ«¬á stream. Åα«µÑñπαá putchar ¿ñÑ¡Γ¿τ¡á »α«-
- µÑñπαÑ putc(c, stdout).
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- ¥Γ¿ «íÑ »α«µÑñπαδ ó«ºóαáΘáεΓ ºá»¿ßá¡¡δ⌐ ß¿¼ó«½. é ß½πτáÑ
- «Φ¿í¬¿ ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ EOF. Æá¬ ¬á¬ º¡áτÑ¡¿Ñ EOF ¼«ªÑΓ
- íδΓ∞ ó«ß»α¿¡∩Γ« ¬á¬ µÑ½á∩ óѽ¿τ¿¡á, »«φΓ«¼π ñ½∩ »α«óÑન ¼ÑßΓá
- 󫺡¿¬¡«óÑ¡¿∩ «Φ¿í¬¿ »α¿¼Ñ¡∩ÑΓß∩ Σπ¡¬µ¿∩ ferror.
- æ¼. Γá¬ªÑ fputc, fputchar, getc, getchar.
- çá¼Ñτá¡¿Ñ: Åα«µÑñπαδ putc ¿ putchar ¿ñÑ¡Γ¿τ¡δ fputc ¿
- fputchar, ¡« «¡¿ ∩ó½∩εΓß∩ ¼á¬α«, á ¡Ñ Σπ¡¬µ¿∩¼¿.
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
-
- FILE *stream;
- char buffer[81];
- int i, ch;
- .
- .
- .
- /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α »«ºó«½∩ÑΓ ºá»¿ßáΓ∞ íπΣÑα ó »«Γ«¬ */
-
- for (i = 0; (i < 81) && ((ch = putc(buffer[i],
- stream)) != EOF) ;)
- ++i;
-
- /* çá¼Ñτá¡¿Ñ: ū߬«½∞¬π Γѽ« πΓóÑαªñÑ¡¿∩ »πßΓ«, «»Ñαᵿ∩
- ºá»¿ß¿ »α«¿ßσ«ñ¿Γ ó óδαáªÑ¡¿¿ »α«óÑન. */
-
-
- PUTCH
-
- #include <conio.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
-
- void putch(c)
- int c; óδó«ñ¿¼δ⌐ ß¿¼ó«½
-
-
-
- - 184 -
-
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ putch ºá»¿ßδóáÑΓ ß¿¼ó«½ "c" »α∩¼« ¡á ¬«¡ß«½∞.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- 髺óαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
- æ¼.Γá¬ªÑ cprintf, getch, getche.
-
- Åα¿¼Ñα:
-
- #include <conio.h>
-
- /* ó ß½ÑñπεΘѼ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ¼«ªÑΓ íδΓ∞ «»αÑñѽѡá Σπ¡¬-
- µ¿∩ getche »«ßαÑñßΓó«¼ ¿ß»«½∞º«óá¡¿∩ Σπ¡¬µ¿⌐ putch ¿ getch.*/
-
- int getche()
- {
- int ch;
-
- ch=getch();
- putch(ch);
- return(ch);
- }
-
-
- PUTENV
-
- #include <stdlib.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩
- «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿
-
- int putenv(envstring); «íΩ∩ó½Ñ¡¿Ñ ßΓ᫬¿
- char *envstring; «¬απªÑ¡¿∩
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ putenv ñ«íáó½∩ÑΓ ¡«óδÑ »ÑαѼѡ¡δÑ «¬απªÑ¡¿∩ ¿½¿ ¼«-
- ñ¿Σ¿µ¿απÑΓ º¡áτÑ¡¿∩ ßπΘÑßΓóπεΘ¿σ »ÑαѼѡ¡δσ «¬απªÑ¡¿∩.
- ÅÑαѼѡ¡δÑ «¬απªÑ¡¿∩ «»αÑñѽ∩εΓ «¬απªÑ¡¿Ñ, ó ¬«Γ«α«¼ óδ»«½-
- ¡∩ÑΓß∩ »α«µÑßß (¡á»α¿¼Ñα, »«¿ß¬ »« π¼«½τá¡¿ε path ñ½∩ í¿í½¿«ΓѬ,
- ½¿¡¬πѼδσ ó¼ÑßΓÑ ß »α«úαá¼¼«⌐).
- Çαúπ¼Ñ¡Γ envstring ñ«½ªÑ¡ íδΓ∞ π¬áºáΓѽѼ ¡á ßΓ᫬π ó ß½Ñ-
- ñπεΘÑ⌐ Σ«α¼Ñ:
-
- varname = string,
-
- úñÑ varname - ¿¼∩ ñ«íáó½∩Ѽ«⌐ ¿½¿ ¼«ñ¿Σ¿µ¿απѼ«⌐ »ÑαѼѡ¡«⌐
- «¬απªÑ¡¿∩ ¿ string - º¡áτÑ¡¿Ñ φΓ«⌐ »ÑαѼѡ¡«⌐. àß½¿ varname πªÑ
- ∩ó½∩ÑΓß∩ τáßΓ∞ε «¬απªÑ¡¿∩, «¡á ºá¼Ñ¡∩ÑΓ ßπΘÑßΓóπεΘπε ßΓ᫬π
- string, ¿¡áτÑ - ¬ «¬απªÑ¡¿ε ñ«íáó½∩ÑΓß∩ ¡«óá∩ ßΓ᫬á string. ç¡á-
- τÑ¡¿Ñ »ÑαѼѡ¡«⌐ ¼«ªÑΓ íδΓ∞ πßΓá¡«ó½Ñ¡« »πßΓδ¼, Ñß½¿ string »πß-
- Γá∩.
- ô¬áºáΓѽ∞ ¡á óσ«ñ (ºá»¿ß∞) «¬απªÑ¡¿∩ ¡Ñ «ßó«í«ªñáÑΓß∩ ñ«
- ΓÑσ »«α, »«¬á óσ«ñ (ºá»¿ß∞) «¬απªÑ¡¿∩ «ßΓáÑΓß∩ ¡Ñ¿º¼Ñ¡¡δ¼ »α¿ ¿ß-
- »«½∞º«óá¡¿¿ ¿½¿ »«¬á »ÑαѼѡ¡á∩ «¬απªÑ¡¿∩ ¡Ñ íπñÑΓ π¬áºδóáΓ∞ ¡á
- «ßó«í«ªñÑ¡¡«Ñ »α«ßΓαá¡ßΓó«. ǡὫú¿τ¡á∩ »α«í½Ñ¼á ¼«ªÑΓ ó«º¡¿¬-
-
- - 185 -
-
-
- ¡πΓ∞, Ñß½¿ »ÑαÑñáÑΓß∩ π¬áºáΓѽ∞ ¡á ½«¬á½∞¡πε »ÑαѼѡ¡πε ñ½∩ Σπ¡¬-
- µ¿¿ putenv, á ºáΓѼ »α«¿ßσ«ñ¿Γ óδσ«ñ ¡á Σπ¡¬µ¿ε, ó ¬«Γ«α«⌐ «íΩ-
- ∩ó½Ñ¡á »ÑαѼѡ¡á∩.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ putenv ó«ºóαáΘáÑΓ 0, Ñß½¿ «¡á πß»ÑΦ¡« «Γαáí«Γá½á.
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 π¬áºδóáÑΓ ¡á «Φ¿í¬π.
- æ¼. Γá¬ªÑ getenv.
-
- çá¼Ñτá¡¿Ñ: öπ¡¬µ¿¿ getenv ¿ putenv ¿ß»«½∞ºπεΓ ú½«íá½∞¡πε
- »ÑαѼѡ¡πε environ ñ½∩ ñ«ßΓπ»á ¬ Γáí½¿µÑ »ÑαѼѡ¡δσ «¬απªÑ¡¿∩.
- öπ¡¬µ¿∩ putenv ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ º¡áτÑ¡¿Ñ environ, ñѽá∩ ¡ÑñÑ⌐ßΓó¿-
- Γѽ∞¡δ¼ áαúπ¼Ñ¡Γ "envp" ñ½∩ Σπ¡¬µ¿¿ "main".
-
- Åα¿¼Ñα:
-
- #include<stdlib.h>
- #include<stdio.h>
- #include<process.h>
-
- /* »«»δΓ¬á ¿º¼Ñ¡Ñ¡¿∩ »ÑαѼѡ¡«⌐ «¬απªÑ¡¿∩ */
-
- if (putenv("PATH=a:\\bin;b:\\tmp") == -1)
- { printf("putenv failed -- out of memory");
- exit(1);
- }
-
-
-
- PUTS
-
- #include <stdio.h>
-
- int puts (string);
- char *string; óδó«ñ¿¼á∩ ßΓ᫬á
-
-
- Ä»¿ßá¡¿Ñ.
-
- ¥Γá Σπ¡¬µ¿∩ ºá»¿ßδóáÑΓ óδíαá¡¡πε ßΓ᫬π string ó ßΓá¡ñáαΓ-
- ¡δ⌐ »«Γ«¬ óδó«ñá stdout, ºá¼Ñ¡∩∩ ó óδσ«ñ¡«¼ »«Γ«¬Ñ ¡π½Ñó«⌐ ß¿¼ó«½
- «¬«¡τá¡¿∩ ßΓ᫬¿ ('\0') ß¿¼ó«½«¼ ¡«ó«⌐ ßΓ᫬¿ ('\n').
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ puts ó«ºóαáΘáÑΓ »«ß½Ññ¡¿⌐ ºá»¿ßá¡¡δ⌐ ß¿¼ó«½, ¬«Γ«-
- αδ¼ «íδτ¡« ∩ó½∩ÑΓß∩ ß¿¼ó«½ ¡«ó«⌐ ßΓ᫬¿ '\n'. ç¡áτÑ¡¿Ñ EOF ßó¿ñÑ-
- Γѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ.
- æ¼. Γá¬ªÑ fputs, gets.
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
-
-
- - 186 -
-
-
- int result;
-
- /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α »«ºó«½∩ÑΓ ºá»¿ßáΓ∞ »«ñ߬Ậπ "éßΓáó∞-
- ΓÑ ñ¿ß¬ÑΓπ ß ñá¡¡δ¼¿ ¿ ¡áª¼¿ΓÑ ½εíπε ¬½áó¿Φπ" ó stdout. */
-
- result = puts("Insert data disk and strike any key");.
-
-
- PUTW
-
- #include <stdio.h>
-
- int putw(binint, stream);
- int binint; óδó«ñ¿¼«Ñ ñó«¿τ¡«Ñ µÑ½«Ñ
-
- FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ putw ºá»¿ßδóáÑΓ ñó«¿τ¡«Ñ º¡áτÑ¡¿Ñ Γ¿»á int ó ΓѬπ-
- Θπε »«º¿µ¿ε »«Γ«¬á stream. ¥Γá Σπ¡¬µ¿∩ ¡Ñ óδαáó¡¿óáÑΓ Ññ¿¡¿µδ ó
- »«Γ«¬Ñ ¿ ¡Ñ »αÑñ»«½áúáÑΓ ß»Ñµ¿á½∞¡«ú« óδαáó¡¿óá¡¿∩.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ putw ó«ºóαáΘáÑΓ ºá»¿ßá¡¡«Ñ º¡áτÑ¡¿Ñ. ç¡áτÑ¡¿Ñ EOF
- ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ. ū߬«½∞¬π EOF ¼«ªÑΓ íδΓ∞ ó«ß»α¿¡∩Γ«
- Γá¬ªÑ ¬á¬ µÑ½á∩ óѽ¿τ¿¡á, Γ« ñ½∩ »α«óÑન «Φ¿í¬¿ ¼«ªÑΓ íδΓ∞ ¿ß-
- »«½∞º«óá¡á Σπ¡¬µ¿∩ ferror.
- æ¼. Γá¬ªÑ getw.
- çá¼Ñτá¡¿Ñ: ¥Γá Σπ¡¬µ¿∩ »«ºó«½∩ÑΓ «íÑß»Ñτ¿óáΓ∞ ß«ó¼ÑßΓ¿¼«ßΓ∞
- ß »αÑñδñπΘ¿¼¿ í¿í½¿«ΓѬἿ. ìπª¡« ºá¼ÑΓ¿Γ∞, τΓ« »α¿ ¿ß»«½∞º«óá¡¿¿
- ñá¡¡«⌐ Σπ¡¬µ¿¿ ¼«úπΓ ó«º¡¿¬áΓ∞ »α«í½Ñ¼δ »ÑαÑ¡«ß¿¼«ßΓ¿ ¿º «ñ¡«⌐
- ß¿ßΓѼδ ó ñαπúπε ß¿ßΓѼπ, »«ß¬«½∞¬π ó ¡¿σ «Γ½¿τáεΓß∩ αẼÑαδ int
- ¿ »«α∩ñ«¬ αáß»«½«ªÑ¡¿∩ íá⌐Γ«ó ó int.
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
- #include <stdlib.h>
-
- FILE *stream;
- .
- .
- .
-
- /* ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ »«ºó«½∩εΓ ºá»¿ßáΓ∞ ß½«ó« ó »«Γ«¬
- stream ¿ »α«óÑα¿Γ∞ ¡á ¡á½¿τ¿Ñ «Φ¿í¬¿. */
-
- putw(0345, stream);
-
- if (ferror(stream))
- { fprintf(stderr, "putw failed\n");
- clearerr(stream);
- }
-
- - 187 -
-
-
-
-
- QSORT
-
- #include <search.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
-
- void gsort(base,num, width, compare);
- char *base;
- unsigned num, width;
- int (*compare)();
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ qsort óδ»«½¡∩ÑΓ á½ú«α¿Γ¼ íδßΓα«⌐ ß«αΓ¿α«ó¬¿, τΓ«íδ
- «Γß«αΓ¿α«óáΓ∞ ¼áßß¿ó ¿º num φ½Ñ¼Ñ¡Γ«ó, ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ αẼÑα«¼
- width íá⌐Γ. Çαúπ¼Ñ¡Γ base ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á íáºπ ¼áßß¿óá,
- ¬«Γ«αδ⌐ ¡πª¡« «Γß«αΓ¿α«óáΓ∞. öπ¡¬µ¿∩ qsort »ÑαѺỿßδóáÑΓ φΓ«Γ
- ¼áßß¿ó ß «Γß«αΓ¿α«óá¡¡δ¼¿ φ½Ñ¼Ñ¡ΓἿ.
- Çαúπ¼Ñ¡Γ compare ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á »α«µÑñπαπ, »«ßΓáó-
- ½∩Ѽπε »«½∞º«óáΓѽѼ, ¬«Γ«αá∩ ßαáó¡¿óáÑΓ ñóá φ½Ñ¼Ñ¡Γá ¼áßß¿óá ¿
- ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ, «»αÑñѽ∩εΘÑÑ ¿σ «Γ¡«ΦÑ¡¿Ñ.
- öπ¡¬µ¿∩ qsort ¼«ªÑΓ óδºδóáΓ∞ »α«µÑñπαπ compare «ñ¿¡ ¿½¿
- ¡Ñ߬«½∞¬« αẠó »α«µÑßßÑ ß«αΓ¿α«ó¬¿, »ÑαÑñáóá∩ »α¿ ¬áªñ«¼ ó맮óÑ
- π¬áºáΓѽ¿ ¡á ñóá φ½Ñ¼Ñ¡Γá ¼áßß¿óá. Åα«µÑñπαá ñ«½ª¡á ßαáó¡¿óáΓ∞
- φ½Ñ¼Ñ¡Γδ, á ºáΓѼ ó«ºóαáΘáΓ∞ «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
-
- ç¡áτÑ¡¿Ñ àú« ß¼δß½
-
- ¼Ñ¡∞ΦÑ 0 element 1 ¼Ñ¡∞ΦÑ element 2
-
- 0 element 1 αáóÑ¡ element 2
-
- í«½∞ΦÑ 0 element 1 í«½∞ΦÑ element 2
-
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- 髺óαáΘáѼ«ú« º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
- æ¼.Γá¬ªÑ bsearch, lsearch.
-
- Åα¿¼Ñα:
-
- #include <search.h>
- #include <string.h>
- #include <stdio.h>
-
- int compare ();
- /* ñ«½ª¡á íδΓ∞ «íΩ∩ó½Ñ¡á ¬á¬ Σπ¡¬µ¿∩ */
-
- main (argc, argv)
- int argc;
- char **argv;
- {
- .
-
- - 188 -
-
-
- .
- .
- /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ß«αΓ¿απÑΓ áαúπ¼Ñ¡Γδ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿
- ó ½Ñ¬ß¿¬«úαáΣ¿τÑ߬«¼ »«α∩ñ¬Ñ: */
-
- qsort((char*)argv,argc,sizeof(char*),compare);
- for (i=0; i<argc; ++i)
- printf("%s\n", argv[i]);
- .
- .
- .
- }
-
- int compare (arg1, arg2)
- char **arg1, **arg2;
-
- {
- return(strcmp(*arg1, *arg2));
- }
-
-
- RAND
-
- #include<stdlib.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩
- «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿¿
-
- int rand;
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ rand ó«ºóαáΘáÑΓ »ßÑóñ«ß½πτá⌐¡«Ñ µÑ½«Ñ ó ¿¡ΓÑαóá½Ñ
- «Γ 0 ñ« 32767. Åα«µÑñπαá srand ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ »ÑαÑñ ó맮ó«¼
- rand ñ½∩ πßΓá¡«ó¬¿ ¡áτá½∞¡«⌐ ß½πτá⌐¡«⌐ Γ«τ¬¿.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ rand ó«ºóαáΘáÑΓ »ßÑóñ«ß½πτá⌐¡«Ñ τ¿ß½«.
- æ¼. Γá¬ªÑ srand.
-
- Åα¿¼Ñα:
-
- #include<stdlib.h>
- #include<stdio.h>
-
- int x;
-
- /* »ÑτáΓáÑΓ 20 »Ñαóδσ ßúÑ¡Ñα¿α«óá¡¡δσ ß½πτá⌐¡δσ τ¿ßѽ */
-
- for (x = 1; x <= 20; x++)
- printf("iteration %d, rand=%d\n", x, rand());.
-
-
-
-
-
- - 189 -
-
- READ
-
- #include<io.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
-
- int read(handle, buffer,count)
- int handle; handle-α, ßßδ½áεΘ¿⌐ß∩ ¡á «Γ¬αδ-
- Γδ⌐ Σá⌐½á
- char *buffer; »á¼∩Γ∞ ñ½∩ σαá¡Ñ¡¿∩ ñá¡¡δσ
- unsigned int count; ¼á¬ß¿¼á½∞¡«Ñ ¬«½¿τÑßΓó« íá⌐Γ«ó
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ read »«ºó«½∩ÑΓ τ¿ΓáΓ∞ íá⌐Γδ count ¿º Σá⌐½á, ßó∩ºá¡-
- ¡«ú« ß handle, ó íπΣÑα buffer. Ä»Ñαᵿ¿ τΓÑ¡¿∩ ¡áτ¿¡áεΓß∩ ß ΓѬπ-
- ΘÑ⌐ »«º¿µ¿¿ π¬áºáΓѽ∩ ¡á Σá⌐½, ¬«Γ«αδ⌐ ß««ΓóÑΓßΓóπÑΓ ñá¡¡«¼π Σá⌐-
- ½π. Å«ß½Ñ óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ τΓÑ¡¿∩ φëà π¬áºáΓѽ∞ πßΓá¡áó½¿óá-
- ÑΓß∩ ¡á ß½ÑñπεΘ¿⌐ ¡Ñ»α«τ¿Γá¡¡δ⌐ ß¿¼ó«½.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ read ó«ºóαáΘáÑΓ τ¿ß½« ñÑ⌐ßΓó¿Γѽ∞¡« »α«τ¿Γá¡¡δσ
- íá⌐Γ«ó, ¬«Γ«α«Ñ ¼«ªÑΓ íδΓ∞ ¼Ñ¡∞ΦÑ, τѼ count. 髺óαáΘáѼ«Ñ º¡áτÑ-
- ¡¿Ñ 0 π¬áºδóáÑΓ ¡á »«»δΓ¬π τΓÑ¡¿∩ ¬«¡µá Σá⌐½á, á 1 - ßó¿ñÑΓѽ∞ßΓ-
- óπÑΓ «í «Φ¿í¬Ñ; ó φΓ¿σ ß½πτá∩σ errno πßΓá¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ,
- ¬«Γ«α«Ñ «»¿ßá¡« ¡¿ªÑ.
-
- éѽ¿τ¿¡á æ¼δß½«ó«Ñ º¡áτÑ¡¿Ñ
-
- EBADF ºáñá¡¡δ⌐ handle ¡ÑóÑα¡δ⌐, ¿½¿ Σá⌐½ ¡Ñ ∩ó-
- ½∩ÑΓß∩ «Γ¬αδΓδ¼ ñ½∩ τΓÑ¡¿∩, ¿½¿ ªÑ Σá⌐½
- ºáí½«¬¿α«óá¡ (ºá¬αδΓ). (éÑαß¿∩ MS DOS 3.0
- ¿ »«ß½ÑñπεΘ¿Ñ).
-
- àß½¿ »α«τ¿Γá¡« í«½∞ΦÑ 32è (¼á¬ß¿¼á½∞¡δ⌐ αẼÑα Γ¿»á int) ¿º
- Σá⌐½á, ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ íπñÑΓ Γ¿»á unsigned int (ß¼.»α¿¼Ñα,
- »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ). Äñ¡á¬« ¼á¬ß¿¼á½∞¡«Ñ τ¿ß½« íá⌐Γ«ó, ¬«Γ«α«Ñ ¼«ª-
- ¡« »α«τ¿ΓáΓ∞ ¿º Σá⌐½á, αáó¡« 65534; »«ß¬«½∞¬π 65534 (¿½¿ OXFFFF)
- ∩ó½∩ÑΓß∩ ¡Ñ«Γ½¿τ¿¼δ¼ «Γ -1, »«φΓ«¼π íπñÑΓ ó«ºóαáΘÑ¡á «Φ¿í¬á. àß½¿
- Σá⌐½ «Γ¬αδΓ ó ΓѬßΓ«ó«¼ αѪ¿¼Ñ, ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ ¼«ªÑΓ ¡Ñ
- ß««ΓóÑΓßΓó«óáΓ∞ τ¿ß½π ñÑ⌐ßΓó¿Γѽ∞¡« »α«τ¿Γá¡¡δσ íá⌐Γ«ó. àß½¿ ΓѬ-
- ßΓ«óδ⌐ αѪ¿¼ φΣΣÑ¬Γ¿óÑ¡, ¬áªñá∩ »áαá "éè-Åæ" ºá¼Ñ¡∩ÑΓß∩ ß¿¼ó«½«¼
- Åæ. Å«ñßτ¿ΓδóáÑΓß∩ ó ó«ºóαáΘáѼ«¼ º¡áτÑ¡¿¿ Γ«½∞¬« «Γñѽ∞¡δ⌐ ß¿¼-
- ó«½ Åæ. ¥Γá ºá¼Ñ¡á ¡Ñ ó½¿∩ÑΓ ¡á π¬áºáΓѽ∞ Σá⌐½á.
- æ¼.Γá¬ªÑ creat, fread, open, write.
-
- çá¼Ñτá¡¿Ñ: é MS DOS, ¬«úñá Σá⌐½ «Γ¬αδΓ ó ΓѬßΓ«ó«¼ αѪ¿¼Ñ,
- ß¿¼ó«½ Γαá¬ΓπÑΓß∩ ¬á¬ ¿¡ñ¿¬áΓ«α ¬«¡µá Σá⌐½á. àß½¿ óßΓαÑτáÑΓß∩
- CONTROLL-Z, τΓÑ¡¿Ñ «¬á¡τ¿óáÑΓß∩ ¿ »α¿ ß½ÑñπεΘѼ τΓÑ¡¿¿ ó«ºóαáΘá-
- ÑΓß∩ 0 íá⌐Γ«ó. ê¡ñ¿¬áΓ«α ¬«¡µá Σá⌐½á ¼«ªÑΓ ó«ß»αÑ»∩ΓßΓó«óáΓ∞
- «τ¿ß⪥ Σá⌐½á.
-
- Åα¿¼Ñα:
-
- #include <io.h>
- #include <stdio.h>
- #include <fcntl.h>
-
- - 190 -
-
-
-
- char buffer [60000]
-
- main ()
- {
- int fh;
- unsigned int nbytes=60000, bytesread;
-
- if ((fn=open("c:/data/conf.dat",O_RDONLY))==-1) {
- perror("open failed on input file");
- exit (1);
- }
- if ((bytesread=read(fh,buffer,nbytes))==-1)
- perror("");
- else
- printf("Read %u bytes from file\n",bytesread);
- .
- .
- .
- }
-
-
- REALLOC
-
- #include <malloc.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
-
- char *realloc(ptr,size);
- char *ptr; π¬áºáΓѽ∞ ¡á αá¡ÑÑ ºáσóáτÑ¡¡δ⌐
- í½«¬ »á¼∩Γ¿
- unsigned size; ¡«óδ⌐ αẼÑα ó íá⌐Γáσ
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ realloc ¿º¼Ñ¡∩ÑΓ αẼÑα αá¡ÑÑ ºáσóáτÑ¡¡«ú« í½«¬á
- »á¼∩Γ¿. Çαúπ¼Ñ¡Γ ptr π¬áºδóáÑΓ ¡á ¡áτὫ í½«¬á. Çαúπ¼Ñ¡Γ size ºá-
- ñáÑΓ ¡«óδ⌐ αẼÑα í½«¬á ó íá⌐Γáσ. æ«ñÑন¼«Ñ í½«¬á ¡Ñ ¿º¼Ñ¡∩ÑΓß∩.
- Çαúπ¼Ñ¡Γ ptr ¼«ªÑΓ π¬áºδóáΓ∞ ¡á í½«¬, ¬«Γ«αδ⌐ ñ«½ªÑ¡ íδΓ∞ «ßó«-
- í«ªñÑ¡ »αѪñÑ, τѼ »«ß½ÑñπεΓ ó맮óδ calloc, halloc, malloc,
- realloc.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ realloc ó«ºóαáΘáÑΓ char-π¬áºáΓѽ∞ ¡á »ÑαѺáσóáτÑ¡-
- ¡δ⌐ í½«¬ »á¼∩Γ¿. ü½«¬ ¼«ªÑΓ íδΓ∞ »ÑαÑñó¿¡πΓ, Ñß½¿ Ñú« αẼÑαδ ¿º-
- ¼Ñ¡Ñ¡δ, »«φΓ«¼π áαúπ¼Ñ¡Γ ptr ñ½∩ Σπ¡¬µ¿¿ realloc ¡Ñ «í∩ºáΓѽ∞¡«
- ñ«½ªÑ¡ íδΓ∞ Γᬿ¼ ªÑ, ¬á¬ ¿ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
- 髺óαáΘáÑΓß∩ º¡áτÑ¡¿Ñ NULL, Ñß½¿ »á¼∩Γ¿ ¡Ññ«ßΓáΓ«τ¡«, τΓ«íδ
- αáßΦ¿α¿Γ∞ í½«¬ ¬ ºáñá¡¡«¼π αẼÑαπ. àß½¿ φΓ« »α«¿ßσ«ñ¿Γ, Γ« »Ñα-
- ó«¡áτá½∞¡δ⌐ í½«¬ «ßó«í«ªñáÑΓß∩.
- é »á¼∩Γ¿, ¡á ¬«Γ«απε π¬áºδóáÑΓ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ, úá-
- αá¡Γ¿α«óá¡« óδαáó¡¿óá¡¿Ñ ñ½∩ σαá¡Ñ¡¿∩ ½εí«ú« Γ¿»á «íΩѬΓá. ùΓ«íδ
- »«½πτ¿Γ∞ π¬áºáΓѽ∞ ¡á Γ¿», «Γ½¿τ¡δ⌐ «Γ char, ¿ß»«½∞ºπÑΓß∩ »αÑ«í-
- αẫóáΓѽ∞ Γ¿»á ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩.
- æ¼.Γá¬ªÑ caloc, free, halloc, malloc.
-
- - 191 -
-
-
-
- Åα¿¼Ñα:
-
- #include <malloc.h>
- #include <stdio.h>
-
- char *alloc;
-
- /* óδí¿αáÑΓ ñ«ßΓáΓ«τ¡« í«½∞Φ«Ñ »α«ßΓαá¡ßΓó« ñ½∩ 50
- ß¿¼ó«½«ó */
-
- alloc=malloc(50*sizeof(char));
- .
- .
- .
-
- /* »ÑαѺáσóáΓδóáÑΓ í½«¬, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ 100 ß¿¼ó«½«ó */
- if (alloc != NULL)
- alloc=realoc(alloc,100*sizeof(char));
-
-
- REMOVE
-
- #include <io.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
- #include <stdio.h> ¿ß»«½∞ºπÑΓ ½¿í« <io.h>, ½¿í«
- <stdio.h>
-
- int remove(pathname);
- char *pathname; path-¿¼∩ πñá½∩Ѽ«ú« Σá⌐½á
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ remove πñá½∩ÑΓ Σá⌐½, «»αÑñѽѡ¡δ⌐ »« pathname.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ remove ó«ºóαáΘáÑΓ 0, Ñß½¿ Σá⌐½ πß»ÑΦ¡« πñá½Ñ¡. 髺-
- óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ ¿ errno πßΓá¡áó-
- ½¿óáÑΓß∩ ó «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐.
-
-
- ç¡áτÑ¡¿Ñ àú« ß¼δß½
-
- EACCES path-¿¼∩ «»αÑñѽ∩ÑΓ ñ¿αÑ¬Γ«α¿⌐ ¿½¿ Σá⌐½
- Γ«½∞¬« ñ½∩ τΓÑ¡¿∩
-
- ENOENT Σá⌐½ ¿½¿ path-¿¼∩ ¡Ñ ¡á⌐ñÑ¡«
-
- æ¼.Γá¬ªÑ close, unlink.
-
- Åα¿¼Ñα:
-
- #include <io.h>
- #include <stdio.h>
-
- - 192 -
-
-
-
- int result;
-
- result=remove("tmpfile");
- if (result == -1)
- perror("couldn't delete tmpfile");
-
-
- RENAME
-
- #include <io.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
- #include <stdio.h> ¿ß»«½∞ºπÑΓ ½¿í« <io.h>, ½¿í«
- <stdio.h>
-
- int rename (oldname,newname);
- char *oldname; π¬áºáΓѽ∞ ¡á ßΓáα«Ñ ¿¼∩
- char *newname; π¬áºáΓѽ∞ ¡á ¡«ó«Ñ ¿¼∩
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ rename »ÑαÑ¿¼Ñ¡«óδóáÑΓ Σá⌐½ ¿½¿ ñ¿αÑ¬Γ«α¿⌐, «»αÑñÑ-
- ½∩Ѽδ⌐ »« ¿¼Ñ¡¿ newname. Oldname ñ«½ª¡« ºáñáóáΓ∞ path-¿¼∩ ßπΘÑßΓ-
- óπεΘÑú« Σá⌐½á ¿½¿ ñ¿αÑ¬Γ«α¿∩. Newname ¡Ñ «»αÑñѽ∩ÑΓ ¿¼∩ πªÑ ßπ-
- ΘÑßΓóπεΘÑú« Σá⌐½á ¿½¿ ñ¿αÑ¬Γ«α¿∩. öπ¡¬µ¿ε rename ¼«ª¡« ¿ß»«½∞º«-
- óáΓ∞ ñ½∩ »ÑαѼÑΘÑ¡¿∩ Σá⌐½á ¿º «ñ¡«ú« ñ¿αÑ¬Γ«α¿∩ ó ñαπú«⌐, Ñß½¿
- ºáñáΓ∞ ñαπú«Ñ path-¿¼∩ ó áαúπ¼Ñ¡ΓÑ newname. Äñ¡á¬«, Σá⌐½δ ¡Ñ ¼«-
- úπΓ íδΓ∞ »ÑαѼÑΘÑ¡δ ß «ñ¡«ú« πßΓα«⌐ßΓóá ¡á ñαπú«Ñ (¡á»α¿¼Ñα, ß
- ñ¿ß¬«ó«ñá Ç ¡á ñ¿ß¬«ó«ñ é). ä¿αÑ¬Γ«α¿¿ ¼«ª¡« »ÑαÑ¿¼Ñ¡«óδóáΓ∞ ¿
- ¡Ñ½∞º∩ »ÑαѼÑΘáΓ∞.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ rename ó«ºóαáΘáÑΓ 0, Ñß½¿ «¡á óδ»«½¡Ñ¡á πß»ÑΦ¡«. é
- ß½πτáÑ «Φ¿í¬¿ ó«ºóαáΘáÑΓß∩ ¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ ¿ errno πßΓá¡áó½¿-
- óáÑΓß∩ ó «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
-
-
- ç¡áτÑ¡¿Ñ àú« ß¼δß½
-
- EACCES öá⌐½ ¿½¿ ñ¿αÑ¬Γ«α¿⌐, ºáñá¡¡δ⌐ »«
- newname, ßπΘÑßΓóπÑΓ ¿½¿ ¡Ñ ¼«ªÑΓ íδΓ∞
- ß«ºñá¡ (¡ÑóÑα¡δ⌐ path), ¿½¿ oldname
- ∩ó½∩ÑΓß∩ ñ¿αÑ¬Γ«α¿Ñ¼ ¿ newname
- «»αÑñѽ∩ÑΓ ñαπú«⌐ path.
-
-
- ENOENT öá⌐½ ¿½¿ path-¿¼∩, ºáñá¡¡δÑ »« oldname,
- ¡Ñ ¡á⌐ñÑ¡δ.
-
- EXDEV Å«»δΓ¬á »ÑαѼÑΘÑ¡¿∩ Σá⌐½á ¡á ñαπú«Ñ
- πßΓα«⌐ßΓó«.
-
-
- æ¼.Γá¬ªÑ create, fopen, open.
-
- - 193 -
-
-
-
- çá¼Ñτá¡¿Ñ. ìπª¡« ºá¼ÑΓ¿Γ∞, τΓ« »«α∩ñ«¬ áαúπ¼Ñ¡Γ«ó ó rename
- ñ½∩ Microsoft C 4.0 »α«Γ¿ó«»«½«ªÑ¡ »«α∩ñ¬π rename ñ½∩ αá¡¡¿σ óÑα-
- ß¿⌐. ¥Γ« ¿º¼Ñ¡Ñ¡¿Ñ í佫 ßñѽᡫ ó ß««ΓóÑΓßΓó¿¿ ß« ßΓá¡ñáαΓ«¼
- ANSI.
-
- Åα¿¼Ñα:
-
- #include <io.h>
-
- int result;
-
- /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ¿º¼Ñ¡∩ÑΓ ¿¼∩ Σá⌐½á "input" ** ¡á ¿¼∩
- "data" */
-
- result = rename("input", "data");
-
-
- REWIND
-
- #include <stdio.h>
-
- void rewind(stream);
-
- FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE.
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ rewind »ÑαѼÑΘáÑΓ π¬áºáΓѽ∞ ¡á Σá⌐½, ßó∩ºá¡¡δ⌐ ß
- »«Γ«¬«¼ stream, ¬ ¡áτá½π Σá⌐½á. é맮ó Σπ¡¬µ¿¿ rewind φ¬ó¿óá½Ñ¡ΓÑ¡
- ó맮óπ ß½ÑñπεΘÑ⌐ Σπ¡¬µ¿¿:
-
- fseek(stream, OL, SEEK_SET);
-
- ß πτÑΓ«¼ Γ«ú«, τΓ« ó »«Γ«¬Ñ rewind «τ¿ΘáÑΓ «Φ¿í¬¿ ¿ ¿¡ñ¿¬á-
- Γ«αδ ¬«¡µá Σá⌐½á, á fseek φΓ«ú« ¡Ñ ñѽáÑΓ. Fseek ó«ºóαáΘáÑΓ º¡á-
- τÑ¡¿Ñ,¬«Γ«α«Ñ «»αÑñѽ∩ÑΓ, πß»ÑΦ¡« ¿½¿ ¡ÑΓ »ÑαÑñó¿¡πΓ π¬áºáΓѽ∞.
- Rewind ¡Ñ ó«ºóαáΘáÑΓ ¡¿¬á¬«ú« º¡áτÑ¡¿∩.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- 髺óαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
- æ¼. Γá¬ªÑ fseek, ftell.
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
-
- FILE *stream;
- int data1, data2;
- .
- .
- .
- fprintf(stream, "%d %d", data1, data2);
- /* αáß»«½áúáÑΓ ñá¡¡δÑ ó Σá⌐½ */
-
- - 194 -
-
-
-
- rewind(stream);
- /* τ¿ΓáÑΓ Σá⌐½ ñá¡¡δσ */
-
- fscanf(stream, "%d", &data1);.
-
-
- RMDIR
-
- #include <direct.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
-
- int rmdir(pathname);
- char *pathname; path-¿¼∩ πñá½∩Ѽ«ú« ñ¿αÑ¬Γ«α¿∩
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ rmdir πñá½∩ÑΓ ñ¿αÑ¬Γ«α¿⌐, «»αÑñѽ∩Ѽδ⌐ »« pathname.
- ä¿αÑ¬Γ«α¿⌐ ñ«½ªÑ¡ íδΓ∞ »πßΓδ¼ ¿ «¡ ¡Ñ ¼«ªÑΓ íδΓ∞ ΓѬπΘ¿¼ αáí«τ¿¼
- ñ¿αÑ¬Γ«α¿Ñ¼ ¿½¿ ñ¿αÑ¬Γ«α¿Ñ¼ ¬«α¡∩.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ rmdir ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 0, Ñß½¿ ñ¿αÑ¬Γ«α¿⌐ πß»ÑΦ-
- ¡« πñá½Ñ¡. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ ¿
- errno πßΓá¡áó½¿óáÑΓß∩ ó «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
-
- ç¡áτÑ¡¿Ñ àú« ß¼δß½
-
- EACCES çáñá¡¡«Ñ path-¿¼∩ ¡Ñ ∩ó½∩ÑΓß∩ ñ¿αÑ¬Γ«-
- α¿Ñ¼; ¿½¿ ñ¿αÑ¬Γ«α¿⌐ ¡Ñ »πßΓ, ¿½¿ ñ¿-
- αÑ¬Γ«α¿⌐ ∩ó½∩ÑΓß∩ ΓѬπΘ¿¼ αáí«τ¿¼ ñ¿-
- αÑ¬Γ«α¿Ñ¼ ¿½¿ ñ¿αÑ¬Γ«α¿Ñ¼ ¬«α¡∩.
-
- ENOENT Path-¿¼∩ ¡Ñ ¡á⌐ñÑ¡«
-
-
- æ¼.Γá¬ªÑ chdir, mkdir.
-
- Åα¿¼Ñα:
-
- #include <direct.h>
-
- int result1, result2;
-
- /* ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ πñá½∩εΓ ñóá ñ¿αÑ¬Γ«α¿∩: ** «ñ¿¡ ó
- ¬«α¡Ñ, ñαπú«⌐ - ó ΓѬπΘѼ αáí«τѼ ** ñ¿αÑ¬Γ«α¿¿ */
-
- result1=rmdir("/data1");
- result2=rmdir("data2");
-
-
- RMTMP
-
- #include <stdio.h>
-
- - 195 -
-
-
-
- int rmtmp;
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ rmtmp ¿ß»«½∞ºπÑΓß∩ ñ½∩ «τ¿ßΓ¬¿ óßÑσ óαѼѡ¡δσ Σá⌐-
- ½«ó ó ΓѬπΘѼ ñ¿αÑ¬Γ«α¿¿. ¥Γá Σπ¡¬µ¿∩ «τ¿ΘáÑΓ ¿ πñá½∩ÑΓ Γ«½∞¬«
- Σá⌐½δ, ß«ºñá¡¡δÑ »α¿ »«¼«Θ¿ tmpfile.
- öπ¡¬µ¿∩ rmtmp ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó Γ«¼ ªÑ ßἫ¼ ñ¿αÑ¬Γ«-
- α¿¿, úñÑ ß«ºñáó὿ß∞ óαѼѡ¡δÑ Σá⌐½δ.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¬«½¿τÑßΓó« «τ¿ΘÑ¡¡δσ ¿ π¡¿τΓ«ªÑ¡¡δσ
- óαѼѡ¡δσ Σá⌐½«ó.
- æ¼. Γá¬ªÑ flushall, tmpfile, tmpnam.
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
-
- main ()
-
- {
- int numdeleted;
- .
- .
- .
- if ((stream = tmpfile()) == NULL)
- perror ("Couldn't open new temporary file");
- .
- .
- .
- numdeleted = rmtmp;
- printf ("Number of files closed and deleted in\
- current directory = %d\n", numdeleted);
- }.
-
-
-
- SBRK
-
- #include <malloc.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
-
- char *sbrk(incr);
- int incr; ¬«½¿τÑßΓó« ñ«íáó½∩Ѽδσ ¿½¿
- óδτ¿ΓáѼδσ íá⌐Γ«ó
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ sbrk »ÑαÑπßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ αáºαδóá ñ½∩ óδºóá¡-
- ¡«ú« »α«µÑßßá. ç¡áτÑ¡¿Ñ¼ αáºαδóá ∩ó½∩ÑΓß∩ áñαÑß »Ñαó«ú« íá⌐Γá
- ºáσóáτÑ¡¡«⌐ »á¼∩Γ¿. öπ¡¬µ¿∩ sbrk ñ«íáó½∩ÑΓ incr íá⌐Γδ ¬ º¡áτÑ¡¿ε
- αáºαδóá; ß««ΓóÑΓßΓóÑ¡¡« φΓ«¼π πßΓá¡áó½¿óáÑΓß∩ αẼÑα ºáσóáΓδóáÑ-
-
- - 196 -
-
-
- ¼«⌐ »á¼∩Γ¿.
-
- çá¼Ñτá¡¿Ñ. Incr ¼«ªÑΓ íδΓ∞ «Γα¿µáΓѽ∞¡δ¼, Γ«úñá ¬«½¿τÑßΓó«
- ºáσóáτÑ¡¡«⌐ »á¼∩Γ¿ π¼Ñ¡∞ΦáÑΓß∩ ¡á incr íá⌐Γ«ó.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ sbrk ó«ºóαáΘáÑΓ ßΓáα«Ñ º¡áτÑ¡¿Ñ αáºαδóá. 髺óαáΘáÑ-
- ¼«Ñ º¡áτÑ¡¿Ñ -1 π¬áºδóáÑΓ ¡á «Φ¿í¬π ¿ errno πßΓá¡áó½¿óáÑΓß∩ ó
- ENOMEN, π¬áºδóá∩, τΓ« «ßΓὫß∞ ¡Ññ«ßΓáΓ«τ¡« »á¼∩Γ¿.
- æ¼.Γá¬ªÑ calloc, free, malloc, realloc.
-
- çá¼Ñτá¡¿Ñ. é ¬«¼»á¬Γ¡«⌐, í«½∞Φ«⌐ ¿ huge-¼«ñѽ∩σ »α«úαá¼¼
- Σπ¡¬µ¿∩ sbrk «ΓßπΓßΓóπÑΓ ¿ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ -1. é í«½∞Φ¿σ ¼«-
- ñѽ∩σ »α«úαá¼¼ ñ½∩ ºáσóáΓá ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ malloc.
-
-
- Åα¿¼Ñα:
-
- #include <malloc.h>
- #include <stdio.h>
-
- /* ºáσóáΓδóáÑΓ »á¼∩Γ∞ ó 100 íá⌐Γ */
-
- char *alloc;
- alloc=sbrk(100);
- .
- .
- .
-
- /* π¼Ñ¡∞ΦáÑΓ ºáσóáτÑ¡¡πε »á¼∩Γ∞ ñ« 60 íá⌐Γ */
-
- if (alloc != (char)-1)
- sbrk(-40);
-
-
- SCANF
-
- #include <stdio.h>
-
- int scanf(format-string[[, argument...]]);
- char *format-string. ßΓ᫬á π»αáó½Ñ¡¿∩ Σ«α¼áΓ«¼.
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ scanf τ¿ΓáÑΓ ñá¡¡δÑ ¿º ßΓá¡ñáαΓ¡«ú« »«Γ«¬á stdin ó
- ¼ÑßΓ«, «»αÑñѽ∩Ѽ«Ñ áαúπ¼Ñ¡ΓἿ arguments. èáªñδ⌐ áαúπ¼Ñ¡Γ ñ«½ªÑ¡
- íδΓ∞ π¬áºáΓѽѼ ¡á º¡áτÑ¡¿Ñ ß Γ¿»«¼, ¬«Γ«αδ⌐ ß««ΓóÑΓßΓóπÑΓ Γ¿»π,
- ºáñá¡¡«¼π ó ßΓα«¬Ñ Σ«α¼áΓá. æΓ᫬á Σ«α¼áΓá π»αáó½∩ÑΓ »αÑ«íαáºáóá-
- ¡¿∩¼¿ »«½Ñ⌐ óó«ñá. ¥Γá ßΓα«¬á ¼«ªÑΓ ß«ñÑαªáΓ∞ ß½ÑñπεΘÑÑ:
-
- "Åα«íѽ∞¡δÑ" ß¿¼ó«½δ, Γ.Ñ. ß¿¼ó«½ »α«íѽá ' ', Γáíπ½∩µ¿¿ \t,
- ¡«ó«⌐ ßΓ᫬¿ '\n'. ä½∩ Σπ¡¬µ¿¿ scanf ß¿¼ó«½«¼ »α«íÑ½á «»αÑñѽ∩ÑΓ-
- ß∩ ßτ¿Γδóá¡¿Ñ, ¡« íѺ ºá»«¼¿¡á¡¿∩, óßÑσ óó«ñ¿¼δσ »«ß½ÑñπεΘ¿σ ß¿¼-
- 󫽫ó »α«íѽá 󻽫Γ∞ ñ« »Ñαó«ú« ß¿¼ó«½á, ¡Ñ ∩ó½∩εΘÑú«ß∩ »α«íѽ«¼.
-
- - 197 -
-
-
- Åα¿ óó«ñÑ «ñ¿¡ ß¿¼ó«½ »α«íѽá ó ßΓα«¬Ñ Σ«α¼áΓá ß««ΓóÑΓßΓóπÑΓ ½ε-
- í«¼π τ¿ß½π, ó¬½ετá∩ 0, ¿½¿ ½εí«⌐ ¬«¼í¿¡áµ¿¿ ß¿¼ó«½«ó »α«íѽá.
- ïεí«⌐ ß¿¼ó«½ π»αáó½Ñ¡¿∩, ¡Ñ ∩ó½∩εΘ¿⌐ß∩ »α«íѽ«¼ ¿ ß¿¼ó«½«¼
- º¡á¬á »α«µÑ¡Γá %. Æ«úñá »« φΓ«¼π ß¿¼ó«½π ñ½∩ Σπ¡¬µ¿¿ scanf «»αÑ-
- ñѽ∩ÑΓß∩ ßτ¿Γδóá¡¿Ñ, ¡« íѺ ºá»«¼¿¡á¡¿∩ ß««ΓóÑΓßΓóπεΘ¿σ ß¿¼ó«½«ó
- π»αáó½Ñ¡¿∩. àß½¿ ß½ÑñπεΘ¿⌐ ß¿¼ó«½ ó <stdin> ¡Ñ ß««ΓóÑΓßΓóπÑΓ ß¿¼-
- ó«½á¼ π»αáó½Ñ¡¿∩, Γ« scanf «¬á¡τ¿óáÑΓ ßó«ε αáí«Γπ.
- æ»Ñµ¿Σ¿¬áµ¿ε Σ«α¼áΓá, óóÑñÑ¡¡πε ß« º¡á¬«¼ %. é φΓ«¼ ß½πτáÑ
- scanf τ¿ΓáÑΓ ¿ »αÑ«íαẫóδóáÑΓ óóÑñÑ¡¡δÑ ß¿¼ó«½δ ¬ º¡áτÑ¡¿∩¼ ºá-
- ñá¡¡«ú« Γ¿»á, »α¿τѼ º¡áτÑ¡¿∩ «»αÑñѽ∩εΓß∩ ß««ΓóÑΓßΓóπεΘ¿¼¿ áαúπ-
- ¼Ñ¡ΓἿ ¿º ß»¿ß¬á áαúπ¼Ñ¡Γ«ó.
-
- æΓ᫬á Σ«α¼áΓá τ¿ΓáÑΓß∩ ß½Ñóá ¡á»αáó«. 濼ó«½δ ó¡Ñ ߻ѵ¿Σ¿-
- ¬áµ¿¿ Σ«α¼áΓá »αÑñ»«½áúáεΓß∩ ß«ú½áß«óá¡¡δ¼¿ ß »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ε
- ß¿¼ó«½«ó ó »«Γ«¬Ñ stdin; φΓ¿ ß«ú½áß«óá¡¡δÑ ß¿¼ó«½δ ó stdin ߬᡿-
- απεΓß∩, ¡« ¡Ñ ºá»«¼¿¡áεΓß∩. àß½¿ ß¿¼ó«½ ó stdin »α«Γ¿ó«αÑτ¿Γ
- ßΓα«¬Ñ Σ«α¼áΓá, scanf «¬á¡τ¿óáÑΓ ßó«ε αáí«Γπ. ¥Γ«Γ ¬«¡Σ½¿¬ΓπεΘ¿⌐
- ß¿¼ó«½ «ßΓáÑΓß∩ ó stdin, Γᬠ¬á¬ «¡ ¡Ñ ¼«ªÑΓ íδΓ∞ »α«τ¿Γá¡. è«úñá
- óßΓαÑτáÑΓß∩ »Ñαóá∩ ߻ѵ¿Σ¿¬áµ¿∩ Σ«α¼áΓá, Γ«úñá º¡áτÑ¡¿Ñ »Ñαó«ú«
- »«½∩ óó«ñá »αÑ«íαẫóδóáÑΓß∩ ó ß««ΓóÑΓßΓó¿¿ ß« ߻ѵ¿Σ¿¬áµ¿Ñ⌐ Σ«α-
- ¼áΓá ¿ ºá»«¼¿¡áÑΓß∩ ó ¼ÑßΓÑ, ºáñá¡¡«¼ »Ñαóδ¼ áαúπ¼Ñ¡Γ«¼. Å« óΓ«-
- α«⌐ ߻ѵ¿Σ¿¬áµ¿¿ Σ«α¼áΓá óδ»«½¡∩ÑΓß∩ »αÑ«íαẫóá¡¿Ñ óΓ«α«ú« »«½∩
- óó«ñá ¿ ºá»«¼¿¡á¡¿Ñ Ñú« »« óΓ«α«¼π áαúπ¼Ñ¡Γπ; ¿ Γᬠñ« ¬«¡µá
- ßΓ᫬¿ Σ«α¼áΓá.
- Å«½Ñ óó«ñá «úαá¡¿τ¿óáÑΓß∩ »Ñαóδ¼ "»α«íѽ∞¡δ¼" ß¿¼ó«½«¼ ¿½¿
- »Ñαóδ¼ ß¿¼ó«½«¼, ¬«Γ«αδ⌐ ¡Ñ ¼«ªÑΓ »αÑ«íαẫóáΓ∞ß∩ »« ºáñá¡¡«¼π
- Σ«α¼áΓπ, ¿½¿ ß½πτáѼ ñ«ßΓ¿ªÑ¡¿∩ »«½∩ width, ¬«Γ«α«Ñ ¿ñÑΓ »Ñαóδ¼.
- àß½¿ ñ½∩ óδíαá¡¡«⌐ ߻ѵ¿Σ¿¬áµ¿¿ Σ«α¼áΓá ºáñá¡« í«½∞ΦÑ áαúπ-
- ¼Ñ¡Γ«ó, τѼ ΓαÑíπÑΓß∩, Γ« ½¿Φ¡¿Ñ áαúπ¼Ñ¡Γδ ¿ú¡«α¿απεΓß∩.
- æ»Ñµ¿Σ¿¬áµ¿∩ Σ«α¼áΓá ¿¼ÑÑΓ ß½ÑñπεΘπε Σ«α¼π.
-
- %<flags><wigth><.precision><{F:N:h:I}><type>.
-
- èáªñ«Ñ »«½Ñ ó Σ«α¼áΓÑ ß»Ñµ¿Σ¿¬áµ¿⌐ ∩ó½∩ÑΓß∩ «Γñѽ∞¡δ¼ ß¿¼-
- 󫽫¼ ¿½¿ τ¿ß½«¼, óδαáªáεΘ¿¼ «Γñѽ∞¡πε «»µ¿ε Σ«α¼áΓá. 濼ó«½
- type, »«∩ó½∩εΘ¿⌐ß∩ »«ß½Ñ »«ß½Ññ¡Ñú« ¡Ñ«í∩ºáΓѽ∞¡«ú« »«½∩ Σ«α¼áΓá,
- «»αÑñѽ∩ÑΓ Γ¿» »«½∩ óó«ñá ¬á¬ ß¿¼ó«½∞¡«ú«, ßΓ᫬«ó«ú« ¿½¿ τ¿ß½Ñ¡-
- ¡«ú«.
- Åα«ßΓÑ⌐Φ¿⌐ Σ«α¼áΓ ß»Ñµ¿Σ¿¬áµ¿¿ ß«ñÑαª¿Γ Γ«½∞¬« ß¿¼ó«½ º¡á¬á
- »α«µÑ¡Γá ¿ ß¿¼ó«½ Γ¿»á (¡á»α¿¼Ñα, %S).
- èáªñ«Ñ »«½Ñ ߻ѵ¿Σ¿¬áµ¿¿ Σ«α¼áΓá «»¿ßδóáÑΓß∩ ¡¿ªÑ.
- àß½¿ ºá º¡á¬«¼ »α«µÑ¡Γá % ß½ÑñπÑΓ ß¿¼ó«½, ¡Ñ ∩ó½∩εΘ¿⌐ß∩
- ß¿¼ó«½«¼ π»αáó½Ñ¡¿∩ Σ«α¼áΓ«¼, Γ« φΓ«Γ ß¿¼ó«½ ¿ ¿ñπΘ¿Ñ ºá ¡¿¼ ß¿¼-
- ó«½δ, 󻽫Γ∞ ñ« ß½ÑñπεΘÑú« º¡á¬á %, Γαá¬ΓπεΓß∩ ¬á¬ «íδτ¡á∩ »«ß½Ñ-
- ñ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó, Γ.Ñ. »«ß½Ññ«óáΓѽ∞¡«ßΓ∞, ¬«Γ«αá∩ ñ«½ª¡á
- íδΓ∞ óóÑñÑ¡á. ìá»α¿¼Ñα, τΓ«íδ óóÑßΓ¿ ß¿¼ó«½ º¡á¬á %, ¿ß»«½∞ºπÑΓß∩
- ¬«¼í¿¡áµ¿∩ %%.
- çóѺñ«τ¬á (*), ¿ñπΘá∩ ºá º¡á¬«¼ %, »«ñáó½∩ÑΓ ¡áº¡áτÑ¡¿Ñ
- ß½ÑñπεΘÑú« »«½∩ óó«ñá, ºáñáεΘÑú«ß∩ ¬á¬ »«½Ñ, «»αÑñѽ∩Ѽ«Ñ Γ¿»«¼
- type. ¥Γ« »«½Ñ ߬᡿απÑΓß∩, ¡« ¡Ñ ºá»«¼¿¡áÑΓß∩.
- Widht ∩ó½∩ÑΓß∩ »«½«ª¿Γѽ∞¡δ¼ ñÑß∩Γ¿τ¡δ¼ µÑ½δ¼ ¿ π»αáó½∩ÑΓ
- ¼á¬ß¿¼á½∞¡« 󫺼«ª¡δ¼ τ¿ß½«¼ ß¿¼ó«½«ó, ßτ¿ΓδóáѼδσ ¿º stdin. ÅαÑ-
- «íαẫóδóáεΓß∩ ¿ ºá»«¼¿¡áεΓß∩ »« ß««ΓóÑΓßΓóπεΘѼπ áαúπ¼Ñ¡Γπ Γ«½∞-
- ¬« ΓÑ ß¿¼ó«½δ, ¬«Γ«αδÑ ¡Ñ »αÑóδΦáεΓ width. àß½¿ ó width óßΓαÑτá-
- εΓß∩ "»α«íѽ∞¡δÑ" ß¿¼ó«½δ, Γ.Ñ. ß¿¼ó«½δ »α«íѽá, Γáíπ½∩µ¿¿ ¿½¿
-
- - 198 -
-
-
- ¡«ó«⌐ ßΓ᫬¿, Γ« »« óδíαá¡¡«¼π Σ«α¼áΓπ «¡¿ ¡Ñ »αÑ«íαẫóδóáεΓß∩,
- »«¬á ¡Ñ íπñÑΓ ñ«ßΓ¿ú¡πΓ αẼÑα width.
- ìÑ«í∩ºáΓѽ∞¡δÑ »αÑΣ¿¬ßδ F ¿ N ¡Ñ πτ¿ΓδóáεΓ »α¿¡∩Γ«Ñ »«
- π¼«½τá¡¿ε áñαÑß¡«Ñ ß«ú½áΦÑ¡¿Ñ ¿ß»«½∞ºπѼδσ ¼«ñѽÑ⌐ »á¼∩Γ¿. F ¼«-
- ªÑΓ íδΓ∞ »αÑΣ¿¬ß«¼ ¬ áαúπ¼Ñ¡Γπ argument, π¬áºδóáΘѼπ ¡á far-«íΩ-
- ѬΓ; á N - ¡á near-«íΩѬΓ.
- ìÑ«í∩ºáΓѽ∞¡δ⌐ »αÑΣ¿¬ß l ßó¿ñÑΓѽ∞ßΓóπÑΓ « Γ«¼, τΓ« ¿ß»«½∞-
- ºπÑΓß∩ óÑαß¿∩ long; á »αÑΣ¿¬ß h - π¬áºδóáÑΓ ¡á ¿ß»«½∞º«óá¡¿Ñ óÑα-
- ß¿¿ short. æ««ΓóÑΓßΓóπεΘ¿⌐ argument π¬áºδóáÑΓ ¡á long ¿½¿
- double-«íΩÑ¬Γ (»α¿ »«¼«Θ¿ »αÑΣ¿¬ßá l) ¿½¿ ¡á short-«íΩÑ¬Γ (»α¿
- »«¼«Θ¿ »αÑΣ¿¬ßá h). î«ñ¿Σ¿¬áΓ«αδ l ¿ h ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó¼Ñß-
- ΓÑ ß Γ¿»á¼¿ ß¿¼ó«½«ó d, i, o, x, u. î«ñ¿Σ¿¬áΓ«α l Γá¬ªÑ ¼«ªÑΓ ¿ß-
- »«½∞º«óáΓ∞ß∩ ß ß¿¼ó«½á¼¿ type e ¿ f. àß½¿ «»αÑñѽѡ ½εí«⌐ ñαπú«⌐
- type, ¼«ñ¿Σ¿¬áΓ«αδ l ¿ h ¿ú¡«α¿απεΓß∩.
-
- 濼ó«½δ type ¿ ¿σ º¡áτÑ¡¿∩ «»¿ßá¡δ ó Γáí½¿µÑ R.4.
-
- Æáí½¿µá R.4
-
- Æ¿»δ ß¿¼ó«½«ó Σπ¡¬µ¿¿ scanf
-
- æêîéÄï ÅÉàäÅÄïÇâÇàî¢ë ÆêÅ ÆêÅ ÇÉâôîàìÆÇ
- ééÄäÇ
-
-
- d ñÑß∩Γ¿τ¡δ⌐ µÑ½δ⌐ π¬áºáΓѽ∞ ¡á int.
-
- D ñÑß∩Γ¿τ¡δ⌐ µÑ½δ⌐ π¬áºáΓѽ∞ ¡á long.
-
- o ó«ß∞¼Ñα¿τ¡δ⌐ µÑ½δ⌐ π¬áºáΓѽ∞ ¡á int.
-
- O ó«ß∞¼Ñα¿τ¡δ⌐ µÑ½δ⌐ π¬áºáΓѽ∞ ¡á long.
-
- x ΦÑßΓ¡áñµáΓÑα¿τ¡δ⌐ π¬áºáΓѽ∞ ¡á int.
- µÑ½δ⌐
-
- X ΦÑßΓ¡áñµáΓÑα¿τ¡δ⌐ π¬áºáΓѽ∞ ¡á long.
- µÑ½δ⌐
-
- i ñÑß∩Γ¿τ¡δ⌐, ó«ß∞- π¬áºáΓѽ∞ ¡á int.
- ¼Ñα¿τ¡δ⌐ ¿½¿ ΦÑßΓ-
- ¡áñµáΓÑα¿τ¡δ⌐ µÑ-
- ½δ⌐
-
- I ñÑß∩Γ¿τ¡δ⌐, ó«ß∞- π¬áºáΓѽ∞ ¡á long.
- ¼Ñα¿τ¡δ⌐ ¿½¿ ΦÑßΓ-
- ¡áñµáΓÑα¿τ¡δ⌐ µÑ-
- ½δ⌐
-
- u íѺº¡á¬«óδ⌐ ñÑß∩- π¬áºáΓѽ∞ ¡á unsigned
- Γ¿τ¡δ⌐ µÑ½δ⌐ int.
-
- U íѺº¡á¬«óδ⌐ ñÑß∩- π¬áºáΓѽ∞ ¡á unsigned
- Γ¿τ¡δ⌐ µÑ½δ⌐ long.
-
-
- - 199 -
-
-
- e º¡áτÑ¡¿Ñ ß »½áóá- π¬áºáΓѽ∞ ¡á float
- f εΘÑ⌐ Γ«τ¬«⌐, ß«-
- ñÑαªáΘÑÑ ¡Ñ«í∩ºá-
- Γѽ∞¡δ⌐ º¡á¬ ("+",
- "-"), «ñ¡π ¿½¿
- í«½∞ΦÑ ñÑß∩Γ¿τ¡πε
- µ¿Σαπ, «íδτ¡« ß«-
- ñÑαªáΘπε ñÑß∩Γ¿τ-
- ¡πε Γ«τ¬π ¿ φ¬ß»«-
- ¡Ñ¡Γπ ("Ñ", "à"),
- ¬«Γ«αá∩ ºá»¿ßδ-
- óáÑΓß∩ ºá º¡á¬«óδ¼
- µÑ½δ¼ º¡áτÑ¡¿Ñ¼.
-
- c ß¿¼ó«½∞¡δ⌐. 濼ó«- π¬áºáΓѽ∞ ¡á char
- ½δ »α«íѽá, Γáíπ-
- ½∩µ¿¿ ¿½¿ ¡«ó«⌐
- ßΓ᫬¿, Γᬠ¡áºδ-
- óáѼδÑ "»α«íѽ∞¡δÑ
- ß¿¼ó«½δ", ¬«Γ«αδÑ
- «íδτ¡« »α«»π߬áεΓ-
- ß∩, »α¿ ºáñá¡¿¿
- φΓ«ú« Γ¿»á ßτ¿Γδ-
- óáεΓß∩. ä½∩ ßτ¿Γδ-
- óá¡¿∩ ß½ÑñπεΘÑú«
- ß¿¼ó«½á, ¡Ñ ∩ó½∩ε-
- ΘÑú«ß∩ "»α«íѽ∞-
- ¡δ¼", ¿ß»«½∞ºπÑΓß∩
- ¬«¼í¿¡áµ¿∩ %1s.
-
- s ßΓ᫬«óδ⌐. π¬áºáΓѽ∞ ¡á ß¿¼ó«½∞-
- ¡δ⌐ ¼áßß¿ó, ñ«ßΓáΓ«τ-
- ¡« í«½∞Φ«⌐ ñ½∩ óó«ñ¿-
- ¼«ú« »«½∩ ó¼ÑßΓÑ ß
- ¡π½Ñóδ¼ ß¿¼ó«½«¼
- «¬«¡τá¡¿∩ '\0', »«-
- ∩ó½∩εΘ¿¼ß∩ áóΓ«¼áΓ¿-
- τÑ߬¿.
-
- n τΓÑ¡¿Ñ »α¿ óó«ñÑ π¬áºáΓѽ∞ ¡á int, ó
- ¿º stream ¿½¿ ¬«Γ«α«¼ ºá»¿ßδóáÑΓß∩
- íπΣÑαá ¡Ñ »α«¿ß- τ¿ß½« πß»ÑΦ¡« ßτ¿-
- σ«ñ¿Γ. Γá¡¡δσ ß¿¼ó«½«ó ¿º
- »«Γ«¬á ¿½¿ íπΣÑαá,
- 󻽫Γ∞ ñ« π¬áºá¡¡δσ
- ó ó맮óÑ scanf.
-
- p º¡áτÑ¡¿Ñ ó Σ«α¼Ñ π¬áºáΓѽ∞ ¡á far-
- xxxx : yyyy, úñÑ úαπ»»π ñá¡¡δσ.
- µ¿Σαδ x ¿ y ∩ó½∩-
- εΓß∩ ΦÑßΓ¡áñµáΓÑ-
- α¿τ¡δ¼¿ µ¿ΣαἿ
- óÑασ¡Ñú« αÑú¿ßΓαá.
-
-
-
- - 200 -
-
-
- Åα¿ τΓÑ¡¿¿ ßΓ᫬, ¡Ñ «úαá¡¿τÑ¡¡δσ ß¿¼ó«½á¼¿ »α«íѽá, ¼¡«-
- ªÑßΓó« ß¿¼ó«½«ó ó ¬óáñαáΓ¡δσ ߬«í¬áσ [] ñ«½ª¡« ºá¼Ñ¡∩Γ∞ß∩ ßΓ᫬«-
- óδ¼ Γ¿»«¼ s. æ««ΓóÑΓßΓóπεΘÑÑ »«½Ñ óó«ñá τ¿ΓáÑΓß∩ 󻽫Γ∞ ñ« »Ñαó«-
- ú« ß¿¼ó«½á, ¡Ñ ß«ñÑαªáΘÑú«ß∩ ó «úαá¡¿τÑ¡¡«¼ ¬óáñαáΓ¡δ¼¿ ߬«í¬á¼¿
- ¼¡«ªÑßΓóÑ ß¿¼ó«½«ó. àß½¿ ó φΓ«¼ ¼¡«ªÑßΓóÑ »Ñαóδ¼ ß¿¼ó«½«¼ ∩ó½∩ÑΓ-
- ß∩ caret (^), αѺπ½∞ΓáΓ ß«σαá¡∩ÑΓß∩: »«½Ñ óó«ñá ßτ¿ΓδóáÑΓß∩ ñ«
- »Ñαó«ú« ß¿¼ó«½á, ¡Ñ óσ«ñ∩ΘÑú« ó φΓ« ¼¡«ªÑßΓó« ß¿¼ó«½«ó. ùΓ«íδ ºá-
- »«¼¡¿Γ∞ ßΓ᫬π íѺ ¡π½Ñó«ú« ß¿¼ó«½á '\0', »α¿¼Ñ¡∩ÑΓß∩ ߻ѵ¿Σ¿¬á-
- µ¿∩ %nc, úñÑ n - ñÑß∩Γ¿τ¡«Ñ µÑ½«Ñ. é φΓ«¼ ß½πτáÑ ß¿¼ó«½∞¡δ⌐ Γ¿» s
- «»αÑñѽ∩ÑΓ áαúπ¼Ñ¡Γ, ¬«Γ«αδ⌐ π¬áºδóáÑΓ ¡á ¼áßß¿ó ß¿¼ó«½«ó. æ½Ñ-
- ñπεΘ¿Ñ n ß¿¼ó«½«ó ßτ¿ΓδóáεΓß∩ ¿º óσ«ñ¡«ú« »«Γ«¬á ó «»αÑñѽѡ¡«Ñ
- ¼ÑßΓ«»«½«ªÑ¡¿Ñ ¿ ¡π½Ñó«⌐ ß¿¼ó«½ ¡Ñ ºá»¿ßδóáÑΓß∩.
- öπ¡¬µ¿∩ scanf ñ½∩ ¬áªñ«ú« »«½∩ óó«ñá ߬᡿απÑΓ ß¿¼ó«½ ºá
- ß¿¼ó«½«¼. Ä¡á ¼«ªÑΓ «¬«¡τ¿Γ∞ τΓÑ¡¿Ñ «Γñѽ∞¡«ú« »«½∩ »α¿ ñ«ßΓ¿ªÑ-
- ¡¿¿ ß¿¼ó«½á »α«íѽá, Ñß½¿ ½¿í« ñ«ßΓ¿ú¡πΓ« »«½Ñ width; ½¿í« ß½Ññπ-
- εΘ¿⌐ óó«ñ¿¼δ⌐ ß¿¼ó«½ ¡Ñ ¼«ªÑΓ íδΓ∞ »αÑ«íαẫóá¡ »« ºáñá¡¡«¼π Σ«α-
- ¼áΓπ; ½¿í« ß½ÑñπεΘ¿⌐ ß¿¼ó«½ ¬«¡Σ½¿¬ΓπÑΓ ß ß««ΓóÑΓßΓóπεΘ¿¼ Ѽπ
- ß¿¼ó«½«¼ ó π»αáó½∩εΘÑ⌐ ßΓα«¬Ñ Σ«α¼áΓá; ½¿í« ªÑ ß½ÑñπεΘ¿⌐ ß¿¼ó«½
- «ΓßπΓßΓóπÑΓ ó óδíαá¡¡«¼ ¼¡«ªÑßΓóÑ ß¿¼ó«½«ó. è«úñá »α«¿ßσ«ñ¿Γ óδ-
- ¡πªñÑ¡¡δ⌐ »α«µÑßß «¬«¡τá¡¿∩ ßτ¿Γδóá¡¿∩, Γ« ß½ÑñπεΘÑÑ »«½Ñ óó«ñá
- αáßß¼áΓα¿óáÑΓß∩ ß ßἫú« »Ñαó«ú« ¬«¡Σ½¿¬ΓπεΘÑú« ß¿¼ó«½á. ¥Γ«Γ
- ß¿¼ó«½, Ñß½¿ «¡ «ñ¿¡, αáßß¼áΓα¿óáÑΓß∩ ¬á¬ ¡Ñ»α«τ¿Γá¡¡δ⌐, ½¿í« ¬á¬
- »Ñαóδ⌐ ß¿¼ó«½ ß½ÑñπεΘÑú« »«½∩ óó«ñá, ½¿í« ¬á¬ »Ñαóδ⌐ ß¿¼ó«½ ó
- »«ß½ÑñπεΘ¿σ «»Ñαᵿ∩σ τΓÑ¡¿∩ »«Γ«¬á stdin.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ τ¿ß½« πß»ÑΦ¡« »αÑ«íαẫóá¡¡δσ ¿ ¡áº-
- ¡áτÑ¡¡δσ »«½Ñ⌐. é ó«ºóαáΘáѼ«¼ º¡áτÑ¡¿¿ ¡Ñ ß«ñÑনΓß∩ τ¿ß½« »α«-
- τ¿Γá¡¡δσ ¡« ¡Ñ ¡áº¡áτÑ¡¡δσ »«½Ñ⌐. Åα¿ »«»δ⪥ ßτ¿Γδóá¡¿∩ ¬«¡µá
- Σá⌐½á ó«ºóαáΘáÑΓß∩ º¡áτÑ¡¿Ñ EOF. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ 0 π¬áºδóá-
- ÑΓ, τΓ« ¡ÑΓ ¡áº¡áτÑ¡¡δσ »«½Ñ⌐.
- æ¼. Γá¬ªÑ fscanf, printf, sscanf, vfprintf, vprintf,
- vsprintf.
-
- Åα¿¼Ñα 1.
-
- #include <stdio.h>
-
- int i;
- float fp;
- char c, s[81];
-
- scanf("%d %f %c %s", &i, &fp, &c, s);
- /* óó«ñ αẽ¿τ¡δσ ñá¡¡δσ */.
-
- Åα¿¼Ñα 2.
-
- #include <stdio.h>
-
- main () /* »αÑ«íαẫóá¡¿Ñ ΦÑßΓ¡áñµáΓÑα¿τ¡«ú«
- ** ¿½¿ ó«ß∞¼Ñα¿τ¡«ú« µÑ½«ú« ¬
- ** ñÑß∩Γ¿τ¡«¼π µÑ½«¼π */
- {
- int numassigned, val;
-
- - 201 -
-
-
-
- pintf("Enter hexadecimal or octal #, or 00
- to guit:\n");
- do
- { printf("# = ");
- numassigned = scanf("%i", &val);
- printf("Decimal # = %i\n", nal);
- }
- while (val && numassigned);
-
- /* ¬«¡Ñµ µ¿¬½á, Ñß½¿ º¡áτÑ¡¿Ñ óó«ñá αáó¡« 00, ¿½¿ Ñß½¿
- scanf ¡Ñ ß»«ß«í¡á ¡áº¡áτ¿Γ∞ »«½Ñ */.
-
- }
-
- Æ«úñá ¡á óδσ«ñÑ íπñÑΓ ß½ÑñπεΘÑÑ.
-
- Enter hexadecimal or octal #, or 00 to guit:
-
- # = 0xf
- Decimal # = 15
-
- # = 0100
-
- Decimal # = 64
-
- # = 00
-
- Decimal # = 0.
-
-
-
- SEGREAD
-
- #include <dos.h>
-
- void segread (segregs);
- struct SREGS *segregs; º¡áτÑ¡¿∩ αÑú¿ßΓα«ó ßÑú¼Ñ¡Γá
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ segread ºá»«½¡∩ÑΓ ßΓαπ¬Γπαπ, ¡á ¬«Γ«απε π¬áºδóáÑΓ
- segregs, ΓѬπΘ¿¼ ß«ñÑন¼δ¼ αÑú¿ßΓα«ó ßÑú¼Ñ¡Γá. ¥Γá Σπ¡¬µ¿∩ ¼«ªÑΓ
- ¿ß»«½∞º«óáΓ∞ß∩ ó¼ÑßΓÑ ß Σπ¡¬µ¿∩¼¿ intdosx ¿ int86, τΓ«íδ ó«ßßΓá-
- ¡áó½¿óáΓ∞ º¡áτÑ¡¿∩ αÑú¿ßΓα«ó ßÑú¼Ñ¡Γ«ó, ¿ß»«½∞ºπѼδσ »«ß½Ññ¡¿¼¿.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- 髺óαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
- æ¼.Γá¬ªÑ intdosx, int86x, FP_SEG.
-
- Åα¿¼Ñα:
-
- #include <dos.h>
-
-
- - 202 -
-
-
- struct SREGS segregs;
- unsigned int cs, ds, es, ss;
-
- /* ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ºáñáεΓ ΓѬπΘ¿Ñ º¡áτÑ¡¿∩ αÑú¿ßΓα«ó
- ßÑú¼Ñ¡Γá */
-
- segread(&segregs);
- cs=segregs.cs;
- ds=segregs.ds;
- es=segregs.es;
- ss=segregs.ss;
-
-
-
- SETBUF
-
- #include <stdio.h>
-
- void setbuf(stream, buffer);
- FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE
- char *buffer; íπΣÑα, αẼÑΘáѼδ⌐ »«½∞º«óáΓѽѼ.
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ setbuf »«ºó«½∩ÑΓ »«½∞º«óáΓѽε π»αáó½∩Γ∞ íπΣÑα¿ºáµ¿-
- Ñ⌐ »«Γ«¬á stream. Çαúπ¼Ñ¡Γ stream ¼«ªÑΓ ßßδ½áΓ∞ß∩ ¡á «Γ¬αδΓδ⌐
- Σá⌐½. àß½¿ áαúπ¼Ñ¡Γ buffer ∩ó½∩ÑΓß∩ NULL, Γ« stream ¡Ñ íπΣÑਧ«-
- óá¡¡δ⌐; Ñß½¿ »«Γ«¬ íπΣÑਧ«óá¡¡δ⌐, Γ« buffer ¼«ªÑΓ π¬áºδóáΓ∞ ¡á
- ¼áßß¿ó ß¿¼ó«½«ó αẼÑα«¼ BUFSIZ, úñÑ αẼÑα BUFSIZ «»αÑñѽѡ ó
- <stdio.h>. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ íπΣÑα buffer ñ½∩ íπΣÑ-
- α¿ºáµ¿¿ óó«ñá/óδó«ñá ó¼ÑßΓ« íπΣÑαá, αẼÑΘáѼ«ú« ß¿ßΓѼ«⌐ »«
- π¼«½τá¡¿ε ñ½∩ »«Γ«¬á stream.
- æΓá¡ñáαΓ¡δÑ »«Γ«¬¿ stderr ¿ stdaux »« π¼«½τá¡¿ε ∩ó½∩εΓß∩ ¡Ñ
- íπΣÑਧ«óá¡¡δ¼¿, ¡« »α¿ ¿ß»«½∞º«óá¡¿¿ Σπ¡¬µ¿¿ setbuf «¡¿ ¼«úπΓ
- ¡áº¡áτáΓ∞ íπΣÑαδ.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- ô φΓ«⌐ Σπ¡¬µ¿¿ ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡ÑΓ.
- æ¼. Γá¬ªÑ fflush, fopen, fclose.
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
-
- char buf[BUFSIZ];
- FILE *stream1, stream2;
-
- stream1 = fopen("data1", "r");
- stream2 = fopen("data2", "w");
-
- setbuf(stream, buf);
- /* stream1 ¿ß»«½∞ºπÑΓ íπΣÑα, ¡áº¡áτÑ¡¡δ⌐ »«½∞º«óáΓѽѼ */
- setbuf(stream, NULL);
- /* stream2 ∩ó½∩ÑΓß∩ ¡ÑíπΣÑਧ«óá¡¡δ¼ */.
-
- - 203 -
-
-
-
-
-
- SETJMP
-
- #include<setjmp.h>
-
- int setjmp(env);
- jmp_buf env; »ÑαѼѡ¡á∩, ó ¬«Γ«α«⌐
- σαá¡¿Γß∩ «¬απªÑ¡¿Ñ.
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ setjmp ß«σαá¡∩ÑΓ ß«ßΓ«∩¡¿Ñ ßΓѬá, ¬«Γ«αδ⌐ ¼«ªÑΓ
- íδΓ∞ »«ß½Ññ«óáΓѽ∞¡« ó«ßßΓá¡«ó½Ñ¡ »«ßαÑñßΓó«¼ ¿ß»«½∞º«óá¡¿∩ Σπ¡¬-
- 樨 longjmp.
- öπ¡¬µ¿¿ setjmp ¿ longjmp «íÑß»Ñτ¿óáεΓ ó«º¼«ª¡«ßΓ∞ óδ»«½¡Ñ-
- ¡¿∩ ¡Ñ½«¬á½∞¡«ú« (nonlocal) »ÑαÑσ«ñá ¿ «íδτ¡« ¿ß»«½∞ºπεΓß∩ ñ½∩
- »ÑαÑñáτ¿ π»αáó½Ñ¡¿∩ ¬ «íαáí«Γ¬Ñ «Φ¿í«¬ ñ½∩ ó«ßßΓá¡«ó½Ñ¡¿∩ ¬«ñá ó
- αá¡ÑÑ óδºóá¡¡«⌐ »α«µÑñπαÑ (íѺ ¿ß»«½∞º«óá¡¿∩ «íδτ¡«ú« ó맮óá),
- ñ½∩ ó«ºóαáΓá πß½«ó¡δσ «í«º¡áτÑ¡¿⌐. é맮ó setjmp á¬Γ¿ó¿º¿απÑΓ ß«σ-
- αá¡Ñ¡¿Ñ ΓѬπΘÑú« ß«ßΓ«∩¡¿∩ ßΓѬá ó env. ū߽ÑñπεΘ¿⌐ ó맮ó longjmp
- ó«ßßΓá¡áó½¿óáÑΓ ß«σαá¡Ñ¡¡«Ñ ß«ßΓ«∩¡¿Ñ ¿ ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ ¡á
- π¬áºáΓѽ∞ (Γ«τ¬π óσ«ñá), ¡Ñ»«ßαÑñßΓóÑ¡¡« ß½ÑñπεΘ¿⌐ ºá ß««ΓóÑΓßΓ-
- óπεΘ¿¼ óδº«ó«¼ setjmp. è«úñá óδºδóáÑΓß∩ Σπ¡¬µ¿∩ longjmp, º¡áτÑ¡¿∩
- óßÑσ »ÑαѼѡ¡δσ (ºá ¿ß¬½ετÑ¡¿Ñ¼ »ÑαѼѡ¡δσ αÑú¿ßΓαá) ßΓá¡«ó∩Γß∩
- ñ«ßΓπ»¡δ¼¿ ñ½∩ »α«µÑñπαδ, ¬«Γ«αá∩ »α¿¡¿¼áÑΓ π»αáó½Ñ¡¿Ñ ¿ ß«ñÑনΓ
- º¡áτÑ¡¿∩ φΓ¿σ »ÑαѼѡ¡δσ. ç¡áτÑ¡¿∩ »ÑαѼѡ¡δσ αÑú¿ßΓαá ¡Ñ»αÑñ߬á-
- ºπѼδ.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- Å«ß½Ñ ß«σαá¡Ñ¡¿∩ ß«ßΓ«∩¡¿∩ ßΓѬá Σπ¡¬µ¿∩ setjmp ó«ºóαáΘáÑΓ
- º¡áτÑ¡¿Ñ 0. àß½¿ ó αѺπ½∞ΓáΓÑ ó맮óá longjmp ó«ºóαáΘáÑΓß∩ setjmp,
- Γ«úñá ó«ºóαáΘáÑΓß∩ ¿ º¡áτÑ¡¿Ñ value áαúπ¼Ñ¡Γá longjmp. 髺óαáΘáÑ-
- ¼«ú« º¡áτÑ¡¿∩ ó ß½πτáÑ «Φ¿í¬¿ ¡ÑΓ.
- æ¼. Γá¬ªÑ longjmp.
-
- çá¼Ñτá¡¿Ñ. Å«ß½Ñ óδ»«½¡Ñ¡¿∩ longjmp º¡áτÑ¡¿∩ »ÑαѼѡ¡δσ αÑ-
- ú¿ßΓαá ó »α«µÑñπαÑ, óδºδóáεΘÑ⌐ setjmp, ¡Ñ ¼«úπΓ íδΓ∞ ó«ßßΓá¡«ó½Ñ-
- ¡δ (ó«ºóαáΘÑ¡δ) ¬ ß«íßΓóÑ¡¡δ¼ º¡áτÑ¡¿∩¼.
-
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
- #include <setjmp.h>
-
- jmp_buf mark;
-
- main()
- {
- if (setjmp(mark) != 0)
-
- { printf("longjmp has been called\n");
-
- - 204 -
-
-
- recover();
- exit(1);
- }
- printf("setjmp has been called\n");
- .
- .
- .
- p();
- .
- .
- .
- }
-
-
- p()
- {
-
- int error = 0;
- .
- .
- .
- if (error != 0)
- longjmp(mark, -1);
- .
- .
- .
- }
-
- recover()
- {
-
- /* »α¿ óδσ«ñÑ ¿º »α«úαá¼¼δ πíÑñ¿ΓÑß∞, τΓ« Σá⌐½δ ñá¡¡δσ ¡Ñ
- íπñπΓ ºá»«ατÑ¡δ */
-
- .
- .
- .
- }.
-
-
-
-
- SETMODE
-
- #include <fcntl.h>
- #include <io.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
-
- int setmode(handle,mode);
- int handle; Σá⌐½«óδ⌐ handle
- int mode; ¡«óδ⌐ αѪ¿¼ »αÑ«íαẫóá¡¿∩
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ setmode πßΓá¡áó½¿óáÑΓ ó mode αѪ¿¼ »αÑ«íαẫóá¡¿∩
-
- - 205 -
-
-
- Σá⌐½á, ºáñá¡¡«ú« »« handle.
- Mode ¼«ªÑΓ íδΓ∞ «ñ¡«⌐ ¿º ß½ÑñπεΘ¿σ ¬«¡ßΓá¡Γ.
-
- Manifest-¬«¡ßΓá¡Γá àÑ º¡áτÑ¡¿Ñ
-
- O_TEXT ôßΓá¡áó½¿óáÑΓß∩ ΓѬßΓ«óδ⌐ αѪ¿¼ »αÑ-
- «íαẫóá¡¿∩. è«¼í¿¡áµ¿∩ "髺óαáΓ ¬áαÑΓ-
- ¬¿ - ÅÑαÑó«ñ ßΓ᫬¿" »αÑ«íαáºπÑΓß∩ ¡á
- óσ«ñÑ ¬ «ñ¡«¼π ß¿¼ó«½π "ÅÑαÑó«ñ ßΓ᫬¿"
- (Åæ). æ¿¼ó«½ Åæ ¡á óδó«ñÑ »αÑ«íαáºπÑΓß∩
- ó ¬«¼í¿¡áµ¿ε "髺óαáΓ ¬áαÑΓ¬¿ - ÅÑαÑó«ñ
- ßΓ᫬¿".
-
- O_BINARY ôßΓá¡áó½¿óáÑΓß∩ ñó«¿τ¡δ⌐ αѪ¿¼. éßÑ
- óδΦÑ»α¿óÑñÑ¡¡δÑ »αÑ«íαẫóá¡¿∩ ¡Ñ »«ñ-
- ñÑনóáεΓß∩.
-
- öπ¡¬µ¿∩ setmode «íδτ¡« ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¼«ñ¿Σ¿¬áµ¿¿ αѪ¿¼á
- »αÑ«íαẫóá¡¿∩, πßΓá¡áó½¿óáѼ«ú« »« π¼«½τá¡¿ε, ñ½∩ stdin, stdout,
- stderr, stdaux, stdprn, ¡« ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ½εí«ú« Σá⌐½á.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- é ß½πτáÑ óÑα¡«⌐ πßΓá¡«ó¬¿ Σπ¡¬µ¿∩ setmode ó«ºóαáΘáÑΓ »αÑñδ-
- ñπΘ¿⌐ αѪ¿¼ »αÑ«íαẫóá¡¿∩. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 π¬áºδóáÑΓ ¡á
- «Φ¿í¬π ¿ errno πßΓá¡áó½¿óáÑΓß∩ ó «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
-
-
- ç¡áτÑ¡¿Ñ àú« ß¼δß½
-
- EBADF ìÑóÑα¡δ⌐ Σá⌐½«óδ⌐ handle.
-
- EINVAL ìÑóÑα¡δ⌐ áαúπ¼Ñ¡Γ mode. (ì¿ O_TEXT, ¡¿
- O_BINARY).
-
- æ¼.Γá¬ªÑ create, fopen, open.
-
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
- #include <fcntl.h>
- #include <io.h>
-
- int result;
-
- /* ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α πßΓá¡áó½¿óáÑΓ stdin ó αѪ¿¼ »αÑ«íαá-
- º«óá¡¿∩ binary (»Ñαó«¡áτá½∞¡« «¡ íδ½ text) */
-
- result = setmode(fileno(stdin), O_BINARY);
-
-
-
-
-
- - 206 -
-
- SETVBUF
-
-
- #include <stdio.h>
-
- int setvbuf(stream, buf, type, size);
-
- FILE *stream; π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ FILE
- char *buf; íπΣÑα, ¡áº¡áτÑ¡¡δ⌐ »«½∞º«óáΓѽѼ.
- int type Γ¿» íπΣÑαá:
- _IONBF - ¡ÑΓ íπΣÑαá;
- _IOFBF - »«½¡á∩ íπΣÑα¿ºáµ¿∩;
- _IOLBF - ßΓ᫬«óá∩ íπΣÑα¿ºáµ¿∩.
- int size; αẼÑα íπΣÑαá.
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ setvbuf »«ºó«½∩ÑΓ »«½∞º«óáΓѽε π»αáó½∩Γ∞ íπΣÑਧá-
- µ¿Ñ⌐ ¿ αẼÑα«¼ íπΣÑαá ñ½∩ »«Γ«¬á stream. Stream ¼«ªÑΓ ßßδ½áΓ∞ß∩
- ¡á «Γ¬αδΓδ⌐ Σá⌐½. îáßß¿ó, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ buf, ¿ß»«½∞ºπÑΓß∩
- ¬á¬ íπΣÑα, Ñß½¿ «¡ ¡Ñ ∩ó½∩ÑΓß∩ NULL, Γ.Ñ. »«Γ«¬ ¡Ñ ∩ó½∩ÑΓß∩ íπΣÑ-
- ਧ«óá¡¡δ¼. àß½¿ »«Γ«¬ íπΣÑਧ«óá¡¡δ⌐, ¿ß»«½∞ºπÑΓß∩ Γ¿», «»αÑñÑ-
- ½Ñ¡¡δ⌐ »« type; φΓ«Γ Γ¿» ¼«ªÑΓ íδΓ∞ ½¿í« _IONBF, ½¿í« _IOFBF, ½¿-
- í« _IOLBF. àß½¿ ¿ß»«½∞ºπÑΓß∩ Γ¿» _IOFBF, αẼÑα íπΣÑαá «»αÑñѽ∩-
- ÑΓß∩ »« size; Ñß½¿ ¿ß»«½∞ºπÑΓß∩ Γ¿» _IOLBF ¿½¿ _IONBF, »«Γ«¬ ∩ó-
- ½∩ÑΓß∩ ¡ÑíπΣÑਧ«óá¡¡δ¼, á size ¿ buf ¿ú¡«α¿απεΓß∩.
-
- çìÇùàìêà ÆêÅÇ àâÄ æî¢æï
-
- _IONBF üπΣÑα ¡Ñ ¿ß»«½∞ºπÑΓß∩, ¡Ñß¼«Γα∩ ¡á
- »α¿ßπΓßΓó¿Ñ size ¿ buf
-
- _IOFBF Å«½¡á∩ íπΣÑα¿ºáµ¿∩, Ñß½¿ buf ¡Ñ ∩ó-
- ½∩ÑΓß∩ NULL; »«φΓ«¼π buf ¿ß»«½∞-
- ºπÑΓß∩ ó ¬áτÑßΓóÑ íπΣÑαá, á size -
- Ñú« αẼÑαá
-
- _IOLBF ǡὫú¿τ¡« _IOFBF
-
- êßΓ¿¡¡«Ñ º¡áτÑ¡¿Ñ size «íδτ¡« í«½∞ΦÑ 0, ¡« ¼Ñ¡∞ΦÑ ¼á¬ß¿-
- ¼á½∞¡«ú« µÑ½«ú« αẼÑαá.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ, Ñß½¿ Γ¿» ¿½¿
- αẼÑα íπΣÑαá ¡Ñ»αáó¿½∞¡« «»αÑñѽѡ, ¿ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 0, Ñß-
- ½¿ óßÑ «»αÑñѽѡ« óÑα¡«.
- æ¼. Γá¬ªÑ setbuf, fflush, fopen, fclose.
-
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
-
- char buf[1024];
-
- FILE *stream1, *stream2;
-
-
- - 207 -
-
-
- main()
-
- {
- stream1 = fopen("data1", "r");
- stream2 = fopen("data2", "w");
-
- /* Stream1 íπñÑΓ ¿ß»«½∞º«óáΓ∞ íπΣÑα αẼÑα«¼ 1024 íá⌐Γá ¿
- ¡áº¡áτÑ¡¡δ⌐ »«½∞º«óáΓѽѼ, á stream2 ∩ó½∩ÑΓß∩ ¡ÑíπΣÑਧ«óá¡¡δ¼ */
-
- if (setvbuf(stream1, buf, _IOFBF, sizeof(buf)) !=0)
- printf("Incorrect type or size of buffer1\n");
- if (setvbuf(stream2, _IONBF, 0) != 0)
- printf("Incorrect type or size of buffer2\n");
- }.
-
-
- SIGNAL
-
- #include <signal.h>
-
- int (*signal(sig, func)();
- int sig; º¡áτÑ¡¿Ñ ß¿ú¡á½á
- int (*func)(); óδ»«½¡∩Ѽá∩ Σπ¡¬µ¿∩
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ signal »«ºó«½∩ÑΓ óδíαáΓ∞ ¿º «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ
- «ñ¿¡ ¿º ΓαÑσ ß»«ß«í«ó «íαáí«Γ¬¿ ß¿ú¡á½á »αÑαδóá¡¿∩. Çαúπ¼Ñ¡Γ sig
- ¼«ªÑΓ íδΓ∞ «ñ¡«⌐ ¿º ¼á¡¿ΣÑßΓ¡δσ ¬«¡ßΓá¡Γ SIGINT ¿½¿ SIGFPE, «»αÑ-
- ñѽѡδσ ó <signal.h>. îá¡¿ΣÑßΓ¡á∩ ¬«¡ßΓá¡Γá SIGINT ß««ΓóÑΓßΓóπÑΓ
- ó MS DOS ß¿ú¡á½π »αÑαδóá¡¿∩ INT 23H. SIGFPE ß««ΓóÑΓßΓóπÑΓ »αÑαδ-
- óá¡¿∩¼ »½áóáεΘÑ⌐ Γ«τ¬¿, ¬«Γ«αδÑ ¡Ñ ¼á߬¿α«óá¡δ, Γá¬¿Ñ ¬á¬ »ÑαÑ-
- »«½¡Ñ¡¿Ñ, ñѽѡ¿Ñ ¡á ¡«½∞, ¡ÑóÑα¡á∩ «»Ñαᵿ∩. Çαúπ¼Ñ¡Γ func ¼«ªÑΓ
- íδΓ∞ «ñ¡«⌐ ¿º ¼á¡¿ΣÑßΓ¡δσ ¬«¡ßΓá¡Γ SIG_DFL ¿½¿ SIG_IGN (Γá¬ªÑ «»-
- αÑñѽѡ¡δσ ó <signal.h>), ¿½¿ áñαÑß«¼ Σπ¡¬µ¿¿. Åα¿ »«½πτÑ¡¿¿ ß¿ú-
- ¡á½á »αÑαδóá¡¿∩ »α¿¡¿¼áѼ«Ñ ñÑ⌐ßΓó¿Ñ ºáó¿ß¿Γ «Γ º¡áτÑ¡¿∩ func ¿
- ∩ó½∩ÑΓß∩ ß½ÑñπεΘ¿¼:
-
- çìÇùàìêà àâÄ æî¢æï
-
- SIG_IGN æ¿ú¡á½ »αÑαδóá¡¿∩ ¿ú¡«α¿απÑΓß∩. ¥Γ«
- º¡áτÑ¡¿Ñ ñ½∩ SIGFPE ¡Ñ ºáñáÑΓß∩, Γ.¬.
- ß«ßΓ«∩¡¿Ñ »α«µÑßßá ß »½áóáεΘÑ⌐ Γ«τ¬«⌐
- «ßΓáÑΓß∩ ¡Ñ«»αÑñѽѡ¡δ¼.
-
- SIG_DFL éδºóá¡¡δ⌐ »α«µÑßß ºáóÑαΦÑ¡; π»αáó½Ñ¡¿Ñ
- »ÑαÑñáÑΓß∩ ¡á πα«óÑ¡∞ ¬«¼á¡ñ MS DOS.
- éßÑ Σá⌐½δ, «Γ¬αδΓδÑ ó »α«µÑßßÑ, ºá¬αδ-
- óáεΓß∩, ¡« íπΣÑαδ ¡Ñ «í¡«ó½∩εΓß∩.
-
- ÇñαÑß Σπ¡¬µ¿¿ ä½∩ ß¿ú¡á½«ó SIGINT Σπ¡¬µ¿¿, ¡á ¬«Γ«απε
- π¬áºδóáÑΓ func, »ÑαÑñáÑΓß∩ áαúπ¼Ñ¡Γ
- SIGINT ¿ «¡á óδ»«½¡∩ÑΓß∩. àß½¿ Σπ¡¬µ¿∩
- ºáóÑαΦáÑΓß∩ ¡«α¼á½∞¡«, »αÑαóá¡¡δ⌐ »α«-
- µÑßß ó«º«í¡«ó½∩ÑΓ óδ»«½¡Ñ¡¿Ñ ß ¬«¼á¡ñδ,
-
- - 208 -
-
-
- ß½ÑñπεΘÑ⌐ ºá Γ«⌐, ó ¬«Γ«α«⌐ íδ½ »«½πτÑ¡
- ß¿ú¡á½ »αÑαδóá¡¿∩. ÅÑαÑñ óδ»«½¡Ñ¡¿Ñ¼
- ߻ѵ¿Σ¿µ¿α«óá¡¡«⌐ Σπ¡¬µ¿¿ º¡áτÑ¡¿Ñ func
- πßΓá¡áó½¿óáÑΓß∩ ó SIG_DFL; ß½ÑñπεΘ¿⌐
- ß¿ú¡á½ »αÑαδóá¡¿∩ Γαá¬ΓπÑΓß∩ ¬á¬ ¿ ñ½∩
- SIG_DFL, Ñß½¿ ó¡ÑΦ¡¿⌐ ó맮ó signal,
- ºáñáεΘ¿⌐ ñαπú«Ñ º¡áτÑ¡¿Ñ »αÑαδóá¡¿∩, ¡Ñ
- «»αÑñѽѡ. ¥Γ« »«ºó«½∩ÑΓ »«½∞º«óáΓѽε
- »ÑαÑπßΓá¡áó½¿óáΓ∞ ß¿ú¡á½δ ó óδºδóáѼδσ
- Σπ¡¬µ¿∩σ, Ñß½¿ ¡Ñ«íσ«ñ¿¼«. ä½∩ SIGFPE
- Σπ¡¬µ¿µ, ¡á ¬«Γ«απε π¬áºδóáÑΓ func,
- »ÑαÑñáεΓß∩ ñóá áαúπ¼Ñ¡Γá - SIGFPE ¿ µÑ-
- ½δ⌐ »«ñ¬«ñ «Φ¿í¬¿, FPE-xxx-, ¿ ºáΓѼ
- «¡á óδ»«½¡∩ÑΓß∩. (漫Γα¿ΓÑ include-Σá⌐½
- <float.h> ñ½∩ «»αÑñѽѡ¿∩ »«ñ¬«ñ«ó
- FPE-xxx.) ç¡áτÑ¡¿Ñ func ¡Ñ
- »ÑαÑπßΓá¡«ó¿Γß∩ ñ« ΓÑσ »«α, »«¬á ¡Ñ
- íπñÑΓ »«½πτÑ¡ ß¿ú¡á½ »αÑαδóá¡¿∩; ñ½∩
- óδσ«ñá ¿º ß«ßΓ«∩¡¿∩ »½áóáεΘÑ⌐ Γ«τ¬¿
- ¿ß»«½∞ºπÑΓß∩ setjmp ó¼ÑßΓÑ ß longjmp
- (ß¼. »α¿¼Ñα ñ½∩ Σπ¡¬µ¿¿_fprset). àß½¿
- Σπ¡¬µ¿∩ ºáóÑαΦáÑΓß∩ ¡«α¼á½∞¡«, »αÑαóá¡-
- ¡δ⌐ »α«µÑßß ó«º«í¡«ó½∩ÑΓß∩ ó
- ¡Ñ«»αÑñѽѡ¡«¼ ß«ßΓ«∩¡¿¿ »½áóáεΘÑ⌐
- Γ«τ¬¿.
-
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ signal ó«ºóαáΘáÑΓ »αÑñδñπΘÑÑ º¡áτÑ¡¿Ñ func. 髺óαá-
- ΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 ßó¿ñÑΓѽ∞ßΓóπÑΓ «í «Φ¿í¬Ñ ¿ errno πßΓá¡áó½¿óá-
- ÑΓß∩ ó EINVAL, «»αÑñѽ∩∩ ¡ÑóÑα¡«Ñ º¡áτÑ¡¿Ñ sig.
- æ¼.Γá¬ªÑ abort, exit, _exit, _fpreset, spawnl, spawnle,
- spawnlp, spawnv, spawnve, spawnvp.
-
- çá¼Ñτá¡¿Ñ: é ΓÑσ child-»α«µÑßßáσ, ¬«Γ«αδÑ ß«ºñá¡δ »«ßαÑñßΓ-
- ó«¼ ó맮óá »α«µÑñπα exec ¿½¿ spawn, πßΓá¡«ó½Ñ¡¡δÑ ß¿ú¡á½δ »αÑαδ-
- óá¡¿⌐ ¡Ñ ß«σαá¡∩εΓß∩. ¥Γ¿ ß¿ú¡á½δ ó child-»α«µÑßßÑ »ÑαÑπßΓá¡áó½¿-
- óáεΓß∩ »« π¼«½τá¡¿ε.
-
- Åα¿¼Ñα:
-
- #include <stdio.h>
- #include <signal.h>
- #include <stdlib.h>
- #include <process.h>
- int handler();
-
- main()
- {
- if(signal(SIGINT, handler)==(int(*)())-1) {
- fprintf(stderr,"couldn't set SIGINT\n");
- abort();
- }
- .
-
- - 209 -
-
-
- .
- .
- }
-
- int handler()
- {
- char ch;
- printf("terminate processing? ");
-
- scanf("%1c", &ch);
- if (ch=='y' ::ch=='Y')
- exit(0);
- signal(SIGINT, handler);
- }
-
- /* Σπ¡¬µ¿∩ signal, óδºóá¡¡á∩ ºñÑß∞ ñ½∩ ß½ÑñπεΘÑú« ß¿ú¡á½á
- »αÑαδóá¡¿⌐, »«ßδ½áÑΓ π»αáó½Ñ¡¿Ñ ¡Ñ ó Äæ, á ¬ handler() */
-
-
-
- SIN-SINH
-
- #include <math.h>
-
- double sin(x); óδτ¿ß½∩ÑΓ ß¿¡πß x
- double sinh(x); óδτ¿ß½∩ÑΓ ú¿»Ñαí«½¿τÑ߬¿⌐ ß¿¡πß
- x
- double x; αáñ¿á¡
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿¿ sin ¿ sinh óδτ¿ß½∩εΓ ß««ΓóÑΓßΓóÑ¡¡« ß¿¡πß ¿ ú¿»Ñα-
- í«½¿τÑ߬¿⌐ ß¿¡πß x.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ sin ó«ºóαáΘáÑΓ ß¿¡πß x. àß½¿ x í«½∞Φ«⌐, Γ« ¼«ªÑΓ
- 󫺡¿¬¡πΓ∞ τáßΓ¿τ¡á∩ »«ΓÑα∩ º¡áτ¿¼«ßΓ¿ αѺπ½∞ΓáΓá. é φΓ«¼ ß½πτáÑ
- sin óδαáíáΓδóáÑΓ «Φ¿í¬π PLOSS, ¡« ß««íΘÑ¡¿∩ ¡Ñ »ÑτáΓáÑΓ. àß½¿ x
- ¡áßΓ«½∞¬« í«½∞Φ«⌐, τΓ« ΓÑα∩ÑΓß∩ «íΘá∩ º¡áτ¿¼«ßΓ∞ αѺπ½∞ΓáΓá, Γ«ú-
- ñá sin »ÑτáΓáÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ TLOSS ó stderr ¿ ó«ºóαáΘáÑΓ
- 0. é «í«¿σ ß½πτá∩σ errno πßΓá¡áó½¿óáÑΓß∩ ó ERANGE.
- öπ¡¬µ¿∩ sinh ó«ºóαáΘáÑΓ ú¿»Ñαí«½¿τÑ߬¿⌐ ß¿¡πß x. àß½¿ αÑ-
- ºπ½∞ΓáΓ í«½∞Φ«⌐, sinh ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ HUGE («Γα¿µáΓѽ∞¡«Ñ ¿½¿
- »«½«ª¿Γѽ∞¡«Ñ, ó ºáó¿ß¿¼«ßΓ¿ «Γ º¡á¬á x) ¿ πßΓá¡áó½¿óáÑΓ errno ó
- ERANGE.
- Äíαaí«Γ¬a «Φ¿í«¬ ¼«ªÑΓ íδΓ∞ ¼«ñ¿Σ¿µ¿α«óa¡a »α¿ ¿º¼Ñ¡Ñ¡¿¿
- »α«µÑñπαδ matherr.
- æ¼.Γá¬ªÑ acos, asin, atan, atan2, cos, cosh, tan, tanh.
-
- Åα¿¼Ñα:
-
- #include <math.h>
-
- double pi = 3.1415926535,x,y;
-
- - 210 -
-
-
-
- x = pi/2;);
- y = sin(x); /* y αáóÑ¡ 1.0 */
-
- y = sinh(x); /* y αáóÑ¡ 2.3 */
-
-
-
- SOPEN
-
- #include <fentl.h>
- #include <sys\types.h>
- #include <sys\stat.h>
- #include <sharc.h>
- #include <io.h> ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ «íΩ∩ó½Ñ¡¿∩
- Σπ¡¬µ¿¿
-
- int sopen(pathname,oflag,shflag{,pmode]);
- char *pathname; path-¿¼∩ Σá⌐½á
- int oflag; Γ¿» αáºαÑΦÑ¡¡δσ «»Ñαᵿ⌐
- int shflag; αáºαÑΦÑ¡¡δ⌐ Γ¿» αáºñѽѡ¿∩
- int pmode; αáºαÑΦÑ¡¡δ⌐ Γ¿» ñ«ßΓπ»á
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿∩ sopen «Γ¬αδóáÑΓ Σá⌐½, ºáñá¡¡δ⌐ »« path-¿¼Ñ¡¿, ¿
- »«ñú«Γáó½¿óáÑΓ Ñú« ¬ »«ß½ÑñπεΘѼπ αáºñѽѡ¡«¼π τΓÑ¡¿ε ¿½¿ ºá»¿ß¿,
- τΓ« «»αÑñѽ∩ÑΓß∩ º¡áτÑ¡¿Ñ¼ oflag ¿½¿ shflag. Oflag ∩ó½∩ÑΓß∩ µÑ½δ¼
- óδαáªÑ¡¿Ñ¼, ß«ßΓ«∩Θ¿¼ ¿º ¬«¼í¿¡áµ¿¿ «ñ¡«⌐ ¿½¿ ¡Ñ߬«½∞¬¿σ ß½Ññπε-
- Θ¿σ ¼á¡¿ΣÑßΓ¡δσ ¬«¡ßΓá¡Γ, «íΩ∩ó½Ñ¡¡δσ ó <fcntl.h>. è«úñá ºáñá¡á
- í«½ÑÑ τѼ «ñ¡á ¼á¡¿ΣÑßΓ¡á∩ ¬«¡ßΓá¡Γá, Γ«úñá «¡¿ «íΩÑñ¿¡∩εΓß∩ »α¿
- »«¼«Θ¿ «»ÑαáΓ«αá êïê(:).
-
- OFLAG çìÇùàìêà
-
- O_APPEND ÅÑαÑñ ¬áªñ«⌐ «»ÑαᵿÑ⌐ ºá»¿ß¿
- »ÑαѼÑΘáÑΓ π¬áºáΓÑ∞ ¡á Σá⌐½ ó ¬«¡Ñµ
- Σá⌐½á.
-
- O_CREAT ì«óδ⌐ Σá⌐½ ß«ºñá¡ ¿ «Γ¬αδΓ ñ½∩ ºá»¿ß¿;
- φΓ« ¡Ñ φΣΣÑ¬Γ¿ó¡«, Ñß½¿ ßπΘÑßΓóπÑΓ
- Σá⌐½, «»αÑñѽ∩Ѽδ⌐ »« path-¿¼Ñ¡¿.
-
- O_EXCL 髺óαáΘáÑΓß∩ º¡áτÑ¡¿Ñ «Φ¿í¬¿, Ñß½¿
- ßπΘÑßΓóπÑΓ Σá⌐½, «»αÑñѽ∩Ѽδ⌐ »« path-
- ¿¼Ñ¡¿. êß»«½∞ºπÑΓß∩ ó¼ÑßΓÑ ß O_CREATE.
-
- O_RDONLY öá⌐½ «Γ¬αδΓ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩, Ñß½¿
- ºáñá¡ φëà ӽáú, Γá¬ªÑ ¼«ªÑΓ íδΓ∞ óδ-
- íαá¡ Σ½áú O_RDWR ¿½¿ O_WRONLY.
-
- O_RDWR öá⌐½ «Γ¬αδΓ «ñ¡«óαѼѡ¡« ñ½∩ τΓÑ¡¿∩ ¿
- ºá»¿ß¿; Ñß½¿ ºáñáÑΓß∩ φëà ӽáú, Γ«
- ¼«ªÑΓ íδΓ∞ óδíαá¡ Σ½áú O_RDONLY ¿½¿
- O_WRONLY.
-
- - 211 -
-
-
-
- O_TRUNC æπΘÑßΓóπεΘ¿⌐ Σá⌐½ «Γ¬αδΓ ¿ πßÑτÑ¡ ¬
- ñ½¿¡Ñ 0; φëà Σá⌐½ ñ«½ªÑ¡ ¿¼ÑΓ∞ αáºαÑ-
- ΦÑ¡¿Ñ ¡á ºá»¿ß∞. æ«ñÑন¼«Ñ Σá⌐½á
- π¡¿τΓ«ªáÑΓß∩.
-
- O_WRONLY öá⌐½ «Γ¬αδΓ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩; Ñß½¿
- ºáñá¡ φëà ӽáú, ñ«½ªÑ¡ íδΓ∞ ºáñá¡
- Σ½áú O_RDONLY ¿½¿ O_RDWR.
-
- O_BINARY öá⌐½ «Γ¬αδΓ ó ñó«¿τ¡«¼ (¡Ñ Γαá¡ß½¿α«-
- óá¡¡«¼) αѪ¿¼Ñ. (æ¼. «»¿ßá¡¿Ñ ñó«¿τ-
- ¡«ú« αѪ¿¼á π Σπ¡¬µ¿¿ fopen).
-
- O_TEXT öá⌐½ «Γ¬αδΓ ó ΓѬßΓ«ó«¼ (Γαá¡ß½¿α«óá¡-
- ¡«¼) αѪ¿¼Ñ. (æ¼. «»¿ßá¡¿Ñ ΓѬßΓ«-
- ó«ú« αѪ¿¼á π Σπ¡¬µ¿¿ fopen).
-
- çá¼Ñτá¡¿Ñ: O_TRUNC »«½¡«ßΓ∞ε π¡¿τΓ«ªáÑΓ ß«ñÑন¼«Ñ ßπΘÑßΓ-
- óπεΘÑú« Σá⌐½á, »«φΓ«¼π ¡πª¡« ó¡¿¼áΓѽ∞¡« ¿ß»«½∞º«óáΓ∞ φΓ𠬫¡ß-
- Γá¡Γπ.
- Çαúπ¼Ñ¡Γ shflag ∩ó½∩ÑΓß∩ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼, ß«ßΓ«∩Θ¿¼
- ¿º ß½ÑñπεΘ¿σ ¼á¡¿ΣÑßΓ¡δσ ¬«¡ßΓá¡Γ, «íΩ∩ó½Ñ¡¡δσ ó <share.h>. Å«ñ-
- α«í¡« ¿¡Σ«α¼áµ¿∩ « αѪ¿¼Ñ αáºñѽѡ¿∩ »α¿óÑñÑ¡á ó απ¬«ó«ñßΓóÑ »«
- MS DOS.
-
- shflag ç¡áτÑ¡¿Ñ
-
- SH_COMPAT πßΓá¡áó½¿óáÑΓß∩ αѪ¿¼ ß«ó¼ÑßΓ¿¼«ßΓ¿
-
- SH_DENYRW ñ«ßΓπ» »« τΓÑ¡¿ε ¿ ºá»¿ß¿ ó Σá⌐½Ñ ¡Ñ
- αáºαÑΦÑ¡
-
- SH_DENYWR ñ«ßΓπ» »« ºá»¿ß¿ ó Σá⌐½Ñ ¡Ñ αáºαÑΦÑ¡
-
- SH_DENYRD ñ«ßΓπ» »« τΓÑ¡¿ε ó Σá⌐½Ñ ¡Ñ αáºαÑΦÑ¡
-
- SH_DENYNO ñ«ßΓπ» »« τΓÑ¡¿ε ¿ ºá»¿ß¿ αáºαÑΦÑ¡
-
-
- Çαúπ¼Ñ¡Γ pmode ΓαÑíπÑΓß∩ Γ«½∞¬« Γ«úñá, ¬«úñá «»αÑñѽѡá
- ¬«¡ßΓá¡Γá 0_CREAT. àß½¿ Σá⌐½ ¡Ñ ßπΘÑßΓóπÑΓ, pmode Γá¬ªÑ «»αÑñѽ∩-
- ÑΓ Γ¿»δ ñ«ßΓπ»á ñ½∩ Σá⌐½á, ¬«Γ«αδÑ πßΓá¡áó½¿óáεΓß∩ ó« óαѼ∩ »Ñα-
- ó«ú« ºá¬αδΓ¿∩ ¡«ó«ú« Σá⌐½á. é »α«Γ¿ó¡«¼ ß½πτáÑ áαúπ¼Ñ¡Γ pmode ¿ú-
- ¡«α¿απÑΓß∩. Çαúπ¼Ñ¡Γ pmode ∩ó½∩ÑΓß∩ µÑ½δ¼ óδαáªÑ¡¿Ñ¼, ß«ñÑαªáΘ¿¼
- «ñ¡π ¿½¿ í«½∞ΦÑ ¼á¡¿ΣÑßΓ¡δσ ¬«¡ßΓá¡Γ S_IWRITE ¿ S_IREAD, «íΩ∩ó-
- ½Ñ¡¡δσ ó <sys\stat.h>. è«úñá ºáñáεΓß∩ «íÑ ¬«¡ßΓá¡Γδ, «¡¿ «íΩÑñ¿¡∩-
- εΓß∩ «»ÑαáΓ«α«¼ êïê(!). ç¡áτÑ¡¿Ñ áαúπ¼Ñ¡Γá pmode »α¿óÑñÑ¡« ¡¿ªÑ.
-
- èÄìæÆÇìÆÇ àà æî¢æïÄéÄà çìÇùàìêà
-
- S_IWRITE αáºαÑΦáÑΓ ºá»¿ß∞
-
- S_IREAD αáºαÑΦáÑΓ τΓÑ¡¿Ñ
-
-
- - 212 -
-
-
- S_IREAD:S_IWRITE αáºαÑΦáεΓ τΓÑ¡¿Ñ ¿ ºá»¿ß∞
-
- àß½¿ ºá»¿ß∞ ¡Ñ αáºαÑΦÑ¡á, Σá⌐½ »αÑñ¡áº¡áτÑ¡ Γ«½∞¬« ñ½∩ τΓÑ-
- ¡¿∩. é MS DOS óßÑ Σá⌐½δ «Γ¬αδΓδ ñ½∩ τΓÑ¡¿∩, αáºαÑΦÑ¡¿Ñ »« ºá»¿ß¿
- ¡Ñ ºáñáÑΓß∩. Å«φΓ«¼π ¼«ñѽ¿ S_IWRITE ¿ S_IREAD: S_IWRITE ∩ó½∩εΓß∩
- φ¬ó¿óá½Ñ¡Γ¡δ¼¿.
- ÅÑαÑñ πßΓá¡«ó¬«⌐ αáºαÑΦÑ¡¿∩ Σπ¡¬µ¿∩ sopen »α¿¬½áñδóáÑΓ ΓÑ-
- ¬πΘπε ¼á߬π Σá⌐½á ¬ pmode (ß¼. umask).
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- öπ¡¬µ¿∩ sopen ó«ºóαáΘáÑΓ handle-α ¡á «Γ¬αδΓδ⌐ Σá⌐½. 髺óαá-
- ΘáѼ«Ñ º¡áτÑ¡¿Ñ -1 π¬áºδóáÑΓ ¡á «Φ¿í¬π; errno πßΓá¡áó½¿óáÑΓß∩ ó
- «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
-
- çìÇùàìêà àâÄ æî¢æï
-
- EACCES çáñá¡¡«Ñ path-¿¼∩ ∩ó½∩ÑΓß∩ ñ¿αÑ¬Γ«α¿Ñ¼
- ¿½¿ ßñѽá¡á »«»δΓ¬á ºá»¿ßáΓ∞ ó Σá⌐½,
- «Γ¬αδΓδ⌐ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩, ¿½¿
- 󫺡¿¬½« ¡áαπΦÑ¡¿Ñ ó αѪ¿¼Ñ αáºñѽѡ¿∩.
- (éÑαß¿¿ MS DOS 3.0 ¿ ßΓáαΦÑ).
-
- EINVAL 諼á¡ñ¡δ⌐ Σá⌐½ SHARE.COM ¡Ñ ¿¡ßΓ«½½¿α«-
- óá¡.
-
- EEXIST ö½áú¿ O_CREAT ¿ O_EXCL «»αÑñѽѡδ, ¡«
- ¡áºóá¡¡δ⌐ Σá⌐½ óßÑúñá ßπΘÑßΓóπÑΓ.
-
- EMFILE äαπú¿Ñ handle-αδ Σá⌐½á ¡Ñ ñ«ßΓπ»¡δ,
- Γ.¬. ¼¡«ú« «Γ¬αδΓδσ Σá⌐½«ó.
-
- ENOENT öá⌐½ ¿½¿ path-¿¼∩ ¡Ñ ¡á⌐ñÑ¡«.
-
- æ¼.Γá¬ªÑ close, create, fopen, open, umask.
-
- çá¼Ñτá¡¿Ñ: öπ¡¬µ¿∩ sopen ¿ß»«½∞ºπÑΓß∩ ó óÑαß¿∩σ 3.0 MS DOS
- ¿ ßΓáαΦ¿σ. é αá¡¡¿σ óÑαß¿∩σ MS DOS áαúπ¼Ñ¡Γ shflag ¿ú¡«α¿απÑΓß∩.
- ÉѪ¿¼δ αáºñѽѡ¿∩ Σá⌐½«ó αáí«ΓáεΓ ¡ÑóÑα¡« ß íπΣÑਧ«óá¡¡δ¼¿
- Σá⌐½á¼¿, »«φΓ«¼π fdopen ¡Ñ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ßó∩º¿ »«Γ«¬á ¿ Σá⌐½á,
- «Γ¬αδΓ«ú« ¬ αáºñѽѡ¿ε ¿½¿ ºá¬αδΓ¿ε.
-
- Åα¿¼Ñα:
-
- #include <fcntl.h>
- #include<sys\types.h>
- #include<sys\stat.h>
- #include<share.h>
- #include<io.h>
-
- extern unsigned char _osmajor;
- int fh;
-
-
- /* ÅÑαÑñ óδº«ó«¼ sopen ¿ß»«½∞ºπÑΓß∩ »ÑαѼѡ¡á∩ _osmajor ñ½∩
-
- - 213 -
-
-
- »α«óÑન ¡«¼Ñαá óÑαß¿¿ MS DOS . */.
-
- if (_osmajor >=3)
- fh = sopen ("data", O_RDWR:O_BINARY, SH_DENYRW);
-
- else
- fh = open ("data", O_RDWR: O_BINARY);
-
-
- SPAWNL-SPAWNVPE
-
- #include <stdio.h>
- #include <process.h>
-
- int spawnl(modeflag,pathname,arg0,arg1...,argn,NULL);
- int spawnle(modeflag,pathname,arg0,arg1...,argn,NULL,envp);
- int spawnlp(modeflag,pathname,arg0,arg1...,argn,NULL);
- int spawnlpe(modeflag,pathname,arg0,arg1...,argn,NULL,envp);
- int spawnv(modeflag,pathname,argv);
- int spawnve(modeflag,pathname,argv,envp);
- int spawnvp(modeflag,pathname,argv);
- int spawnvpe(modeflag,pathname,argv,envp);
-
- int modeflag; αѪ¿¼ óδ»«½¡Ñ¡¿∩ parent-»α«µÑßßá
- char *pathname; path-¿¼∩ óδ»«½¡∩Ѽ«ú« Σá⌐½á
- char *arg0,*arg1...,*argn; ß»¿ß«¬ π¬áºáΓѽÑ⌐ ¡á áαúπ¼Ñ¡Γδ
- char *argv[]; ¼áßß¿ó π¬áºáΓѽÑ⌐ ¡á áαúπ¼Ñ¡Γδ
- char *envp[]; ¼áßß¿ó π¬áºáΓѽÑ⌐ ¡á πßΓá¡«ó½Ñ¡-
- ¡«Ñ «¬απªÑ¡¿Ñ
-
- Ä»¿ßá¡¿Ñ.
-
- öπ¡¬µ¿¿ spawn ß«ºñáεΓ ¿ óδ»«½¡∩εΓ ¡«óδ⌐ child-»α«µÑßß. ä½∩
- ºáúαπº¬¿ ¿ óδ»«½¡Ñ¡¿∩ child-»α«µÑßßá ñ«½ª¡« íδΓ∞ ñ«ßΓπ»¡« ñ«ßΓá-
- Γ«τ¡« »á¼∩Γ¿. Çαúπ¼Ñ¡Γ modeflag «»αÑñѽ∩ÑΓ ñÑ⌐ßΓó¿∩, óδí¿αáѼδÑ
- parent-»α«µÑßß«¼ »ÑαÑñ ¿ ¡á »α«Γ∩ªÑ¡¿¿ spawn. æ½ÑñπεΘ¿Ñ º¡áτÑ¡¿∩
- modeflag «íΩ∩ó½Ñ¡δ ó <process.h>
-
- ç¡áτÑ¡¿Ñ àú« ß¼δß½
-
- P_WAIT Åα¿«ßΓá¡áó½¿óáÑΓ parent-»α«µÑßß, »«¬á
- ¡Ñ ºáóÑαΦ¿Γß∩ child-»α«µÑßß.
-
- P_NOWAIT Åα«ñ«½ªáÑΓ óδ»«½¡Ñ¡¿Ñ parent-»α«µÑßßá,
- »áαώѽ∞¡«ú« ß child-»α«µÑßß«¼.
-
- P_OVERLAY Parent-»α«µÑßß »ÑαѬαδóáÑΓß∩ ß child-
- »α«µÑßß«¼; parent-»α«µÑßß π¡¿τΓ«ªáÑΓß∩
- (Γ« ªÑ ñÑ⌐ßΓó¿Ñ, τΓ« ¿ »α¿ ó맮óáσ exec)
-
- î«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ Γ«½∞¬« º¡áτÑ¡¿∩ modeflag, Γá¬¿Ñ ¬á¬
- P_WAIT ¿ P_OVERLAY. ç¡áτÑ¡¿Ñ P_NOWAIT ß«σαá¡∩ÑΓß∩ ñ½∩ 󫺼«ª¡«⌐
- íπñπΘÑ⌐ αÑ὿ºáµ¿¿. àß½¿ ¿ß»«½∞ºπÑΓß∩ P_NOWAIT, ó«ºóαáΘáÑΓß∩ º¡á-
- τÑ¡¿Ñ «Φ¿í¬¿. Çαúπ¼Ñ¡Γ pathname «»αÑñѽ∩ÑΓ Σá⌐½, óδ»«½¡∩Ѽδ⌐ ¬á¬
- child-»α«µÑßß. Pathname ¼«ªÑΓ «»αÑñѽ∩Γ∞ »«½¡δ⌐ path (¿º ¬«α¡∩),
- τáßΓ∞ path (¿º ΓѬπΘÑú« αáí«τÑú« ñ¿αÑ¬Γ«α¿∩), ¿½¿ »α«ßΓ« ¿¼∩ Σá⌐-
- ½á.
-
-
-
-