home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-11-05 | 189.3 KB | 3,226 lines |
-
-
- âïÇéÇ 5
-
- EæêæÆàîì¢à ÄÅàÉÇûêê äïƒ ÉÇüÄÆ¢ æ öÇëïÄéÄë æêæÆàîÄëF
-
-
-
- é »«ß½Ññ¡Ñ⌐ ú½áóÑ αáßß¼áΓα¿ó὿ß∞ ó¡πΓαÑ¡¡¿Ñ ßΓαπ¬Γπαδ ñá¡¡δσ ñ½∩ Σá⌐½«-
- ó«⌐ ß¿ßΓÑ¼δ ¿ á½ú«α¿Γ¼δ αáí«Γδ ß ¡¿¼¿. é φΓ«⌐ ú½áóÑ αÑτ∞ »«⌐ñÑΓ « ß¿ßΓѼ¡δσ
- Σπ¡¬µ¿∩σ ñ½∩ αáí«Γδ ß Σá⌐½«ó«⌐ ß¿ßΓѼ«⌐ ß ¿ß»«½∞º«ó᡿Ѽ »«¡∩Γ¿⌐, óóÑñÑ¡¡δσ
- ó »αÑñδñπΘÑ⌐ ú½áóÑ. Éáßß¼áΓα¿óáεΓß∩ ß¿ßΓѼ¡δÑ Σπ¡¬µ¿¿, «íÑß»Ñτ¿óáεΘ¿Ñ «íαá-
- ΘÑ¡¿Ñ ¬ ßπΘÑßΓóπεΘ¿¼ Σá⌐½á¼, Γá¬¿Ñ ¬á¬ open, read, write, lseek ¿ close, ºá-
- ΓѼ Σπ¡¬µ¿¿ ß«ºñá¡¿∩ ¡«óδσ Σá⌐½«ó, á ¿¼Ñ¡¡«, creat ¿ mknod, ¿, ¡á¬«¡Ñµ, Σπ¡-
- ¬µ¿¿ ñ½∩ αáí«Γδ ß ¿¡ñѬ߫¼ ¿½¿ ñ½∩ »ÑαÑñó¿ªÑ¡¿∩ »« Σá⌐½«ó«⌐ ß¿ßΓѼÑ: chdir,
- chroot, chown, stat ¿ fstat. êßß½ÑñπεΓß∩ í«½ÑÑ ß½«ª¡δÑ ß¿ßΓѼ¡δÑ Σπ¡¬µ¿¿:
- pipe ¿ dup ¿¼ÑεΓ ó᪡«Ñ º¡áτÑ¡¿Ñ ñ½∩ αÑ὿ºáµ¿¿ ¬á¡á½«ó ó shell'Ñ; mount ¿
- umount αáßΦ¿α∩εΓ ó¿ñ¿¼«Ñ ñ½∩ »«½∞º«óáΓѽ∩ ñÑαÑó« Σá⌐½«óδσ ß¿ßΓѼ; link ¿
- unlink ¿º¼Ñ¡∩εΓ ¿Ñαáασ¿τÑ߬πε ßΓαπ¬Γπαπ Σá⌐½«ó«⌐ ß¿ßΓѼδ. çáΓѼ ñáÑΓß∩ »αÑñ-
- ßΓáó½Ñ¡¿Ñ «í áíßΓαᬵ¿∩σ, ßó∩ºá¡¡δσ ß Σá⌐½«ó«⌐ ß¿ßΓѼ«⌐, ó «Γ¡«ΦÑ¡¿¿ »«ññÑα-
- ª¬¿ αẽ¿τ¡δσ Σá⌐½«óδσ ß¿ßΓѼ, »«ñτ¿¡∩εΘ¿σß∩ ßΓá¡ñáαΓ¡δ¼ ¿¡ΓÑαΣÑ⌐ßá¼. é »«ß-
- ½Ññ¡Ñ¼ αáºñÑ½Ñ ú½áóδ αÑτ∞ »«⌐ñÑΓ « ß«»α«ó«ªñÑ¡¿¿ Σá⌐½«ó«⌐ ß¿ßΓѼδ. â½áóá
- º¡á¬«¼¿Γ ß ΓαѼ∩ ßΓαπ¬ΓπαἿ ñá¡¡δσ ∩ñαá: Γáí½¿µÑ⌐ Σá⌐½«ó, ó ¬«Γ«α«⌐ ¬áªñá∩
- ºá»¿ß∞ ßó∩ºá¡á ß «ñ¡¿¼ ¿º «Γ¬αδΓδσ ó ß¿ßΓÑ¼Ñ Σá⌐½«ó, Γáí½¿µÑ⌐ »«½∞º«óáΓѽ∞-
- ߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½«ó, ó ¬«Γ«α«⌐ ¬áªñá∩ ºá»¿ß∞ ßó∩ºá¡á ß Σá⌐½«óδ¼ ñÑ߬-
- α¿»Γ«α«¼, ¿ºóÑßΓ¡δ¼ »α«µÑßßπ, ¿ Γáí½¿µÑ⌐ ¼«¡Γ¿α«óá¡¿∩, ó ¬«Γ«α«⌐ ß«ñÑনΓß∩
- ¿¡Σ«α¼áµ¿∩ »« ¬áªñ«⌐ á¬Γ¿ó¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼÑ.
-
- öπ¡¬µ¿¿ ñ½∩ αáí«Γδ ß Σá⌐½«ó«⌐ ß¿ßΓѼ«⌐
- ┌────────────────────────────────────────────────────────────────┐
- ├──────┬──────────────┬────────┬───────┬───────┬─────────┬───────┤
- │ 髺- │ êß»«½∞ºπεΓ │ ìạá- │ Éáí«- │ éó«ñ- │ Éáí«Γá- │ ô»αáó-│
- │ óαá- │ á½ú«α¿Γ¼ │ τáεΓ │ ΓáεΓ │ óδó«ñ │ εΓ ß« │ ½Ñ¡¿Ñ │
- │ ΘáεΓ │ namei │ ¿¡ñѬ- │ ß áΓ- │ ¿º │ ßΓαπ¬Γπ-│ ñÑ- │
- │ ñÑ߬-│ │ ßδ │ α¿íπ- │ Σá⌐½á │ α«⌐ Σá⌐-│ αÑó∞- │
- │ α¿»- │ │ │ ΓἿ │ │ ½«óδσ │ ∩¼¿ │
- │ Γ«αδ │ │ │ Σá⌐½á │ │ ß¿ßΓѼ │ │
- │ Σá⌐½á│ │ │ │ │ │ │
- ├──────┼──────────────┼────────┼───────┼───────┼─────────┼───────┤
- │ open │ open stat │ │ │ │ │ │
- │ creat│ creat link │ creat │ chown │ read │ │ │
- │ dup │ chdir unlink│ mknod │ chmod │ write │ mount │ chdir │
- │ pipe │ chroot mknod │ link │ stat │ lseek │ umount │ chown │
- │ close│ chown mount │ unlink │ │ │ │ │
- │ │ chmod umount│ │ │ │ │ │
- ├──────┼──────────────┼────────┼───────┼───────┼─────────┼───────┤
- └───┬──┴──────────────┴────────┴───────┴───────┴─────────┴────┬──┘
- │ ǽú«α¿Γ¼δ αáí«Γδ ß Σá⌐½«ó«⌐ ß¿ßΓѼ«⌐ ¡á ¡¿ª¡Ñ¼ πα«ó¡Ñ │
- ├─────────────┬──────────────────┬────────────────────────┤
- │ namei │ │ │
- ├─────────────┤ ialloc ifree │ alloc free bmap │
- │ iget iput │ │ │
- ├─────────────┴──────────────────┴────────────────────────┤
- ├─────────────────────────────────────────────────────────┤
- │ á½ú«α¿Γ¼δ αáí«Γδ ß íπΣÑαἿ │
- ├─────────────────────────────────────────────────────────┤
- │ getblk brelse bread breada bwrite │
- └─────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.1. öπ¡¬µ¿¿ ñ½∩ αáí«Γδ ß Σá⌐½«ó«⌐ ß¿ßΓѼ«⌐ ¿ ¿σ
- ßó∩º∞ ß ñαπú¿¼¿ á½ú«α¿Γ¼á¼¿
-
- 85
-
- ìá É¿ßπ¡¬Ñ 5.1 »«¬áºá¡á óºá¿¼«ßó∩º∞ ¼Ñªñπ ß¿ßΓѼ¡δ¼¿ Σπ¡¬µ¿∩¼¿ ¿ á½ú«-
- α¿Γ¼á¼¿, «»¿ßá¡¡δ¼¿ αá¡ÑÑ. æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿ ¬½áßß¿Σ¿µ¿απεΓß∩ ¡á ¡Ñ߬«½∞¬«
- ¬áΓÑú«α¿⌐, σ«Γ∩ ¡Ñ¬«Γ«αδÑ ¿º Σπ¡¬µ¿⌐ »α¿ßπΓßΓóπεΓ í«½ÑÑ, τѼ ó «ñ¡«⌐ ¬áΓÑú«-
- α¿¿:
-
- * æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿, ó«ºóαáΘáεΘ¿Ñ ñÑß¬α¿»Γ«αδ Σá⌐½«ó ñ½∩ ¿ß»«½∞º«óá¡¿∩
- ñαπú¿¼¿ ß¿ßΓѼ¡δ¼¿ Σπ¡¬µ¿∩¼¿;
- * æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿, ¿ß»«½∞ºπεΘ¿Ñ á½ú«α¿Γ¼ namei ñ½∩ á¡á½¿ºá ¿¼Ñ¡¿ »πΓ¿
- »«¿ß¬á;
- * æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿, ¡áº¡áτáεΘ¿Ñ ¿ «ßó«í«ªñáεΘ¿Ñ ¿¡ñÑ¬ß ß ¿ß»«½∞º«ó᡿Ѽ
- á½ú«α¿Γ¼«ó ialloc ¿ ifree;
- * æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿, πßΓá¡áó½¿óáεΘ¿Ñ ¿½¿ ¿º¼Ñ¡∩εΘ¿Ñ áΓα¿íπΓδ Σá⌐½á;
- * æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿, »«ºó«½∩εΘ¿Ñ »α«µÑßßπ »α«¿ºó«ñ¿Γ∞ óó«ñ-óδó«ñ ñá¡¡δσ ß
- ¿ß»«½∞º«ó᡿Ѽ á½ú«α¿Γ¼«ó alloc, free ¿ á½ú«α¿Γ¼«ó óδñѽѡ¿∩ íπΣÑαá;
- * æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿, ¿º¼Ñ¡∩εΘ¿Ñ ßΓαπ¬Γπαπ Σá⌐½«ó«⌐ ß¿ßΓѼδ;
- * æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿, »«ºó«½∩εΘ¿Ñ »α«µÑßßπ ¿º¼Ñ¡∩Γ∞ ß«íßΓóÑ¡¡«Ñ »αÑñßΓáó½Ñ-
- ¡¿Ñ « ßΓαπ¬ΓπαÑ ñÑαÑóá Σá⌐½«ó«⌐ ß¿ßΓѼδ.
-
-
- E5.1 OPENF
-
- é맮ó ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ open («Γ¬αδΓ∞ Σá⌐½) - φΓ« »Ñαóδ⌐ Φáú, ¬«Γ«αδ⌐
- ñ«½ªÑ¡ ßñѽáΓ∞ »α«µÑßß, τΓ«íδ «íαáΓ¿Γ∞ß∩ ¬ ñá¡¡δ¼ ó Σá⌐½Ñ. æ¿¡Γá¬ß¿ß ó맮óá
- Σπ¡¬µ¿¿ open:
-
- fd = open(pathname,flags,modes);
-
- úñÑ pathname - ¿¼∩ Σá⌐½á, flags π¬áºδóáÑΓ αѪ¿¼ «Γ¬αδΓ¿∩ (¡á»α¿¼Ñα, ñ½∩ τΓÑ-
- ¡¿∩ ¿½¿ ºá»¿ß¿), á modes ß«ñÑαª¿Γ »αáóá ñ«ßΓπ»á ¬ Σá⌐½π ó ß½πτáÑ, Ñß½¿ Σá⌐½
- ß«ºñáÑΓß∩. æ¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ open ó«ºóαáΘáÑΓ µÑ½«Ñ τ¿ß½« (*), ¿¼Ñ¡πѼ«Ñ
- »«½∞º«óáΓѽ∞߬¿¼ ñÑß¬α¿»Γ«α«¼ Σá⌐½á. äαπú¿Ñ «»Ñαᵿ¿ ¡áñ Σá⌐½á¼¿, Γá¬¿Ñ ¬á¬
- τΓÑ¡¿Ñ, ºá»¿ß∞, »«-
- º¿µ¿«¡¿α«óá¡¿Ñ ú«½«ó«¬ τΓÑ¡¿∩-ºá»¿ß¿, ó«ß»α«¿ºóÑñÑ¡¿Ñ ñÑß¬α¿»Γ«αá Σá⌐½á, πß-
- Γá¡«ó¬á »áαá¼ÑΓα«ó óó«ñá-óδó«ñá, «»αÑñѽѡ¿Ñ ßΓáΓπßá Σá⌐½á ¿ ºá¬αδΓ¿Ñ Σá⌐½á,
- ¿ß»«½∞ºπεΓ º¡áτÑ¡¿Ñ ñÑß¬α¿»Γ«αá Σá⌐½á, ó«ºóαáΘáѼ«Ñ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿Ñ⌐ open.
- ƒñα« »α«ß¼áΓα¿óáÑΓ Σá⌐½«óπε ß¿ßΓѼπ ó »«¿ß¬áσ Σá⌐½á »« Ñú« ¿¼Ñ¡¿, ¿ß-
- »«½∞ºπ∩ á½ú«α¿Γ¼ namei (ß¼. É¿ßπ¡«¬ 5.2). Ä¡« »α«óÑα∩ÑΓ »αáóá ¡á «Γ¬αδΓ¿Ñ
- Σá⌐½á »«ß½Ñ Γ«ú«, ¬á¬ «í¡áαπª¿Γ ¬«»¿ε ¿¡ñѬßá Σá⌐½á ó »á¼∩Γ¿, ¿ óδñѽ∩ÑΓ «Γ-
- ¬αδóáѼ«¼π Σá⌐½π ºá»¿ß∞ ó Γáí½¿µÑ Σá⌐½«ó. çỿß∞ Γáí½¿µδ Σá⌐½«ó ß«ñÑনΓ
- π¬áºáΓѽ∞ ¡á ¿¡ñÑ¬ß «Γ¬αδΓ«ú« Σá⌐½á ¿ »«½Ñ, ó ¬«Γ«α«¼ σαá¡¿Γß∩ ß¼ÑΘÑ¡¿Ñ ó
- íá⌐Γáσ «Γ ¡áτá½á Σá⌐½á ñ« ¼ÑßΓá, «Γ¬πñá »αÑñ»«½áúáÑΓß∩ ¡áτ¿¡áΓ∞ óδ»«½¡Ñ¡¿Ñ
- »«ß½ÑñπεΘ¿σ «»Ñαᵿ⌐ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿. ƒñα« ßíαáßδóáÑΓ φΓ« ß¼ÑΘÑ¡¿Ñ ó 0 ó«
- óαѼ∩ «Γ¬αδΓ¿∩ Σá⌐½á, ¿¼Ñ∩ ó ó¿ñπ, τΓ« ¿ßσ«ñ¡á∩ «»Ñαᵿ∩ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿
- »« π¼«½τá¡¿ε íπñÑΓ »α«¿ºó«ñ¿Γ∞ß∩ ß ¡áτá½á Σá⌐½á. æ ñαπú«⌐ ßΓ«α«¡δ, »α«µÑßß
- ¼«ªÑΓ «Γ¬αδΓ∞ Σá⌐½ ó αѪ¿¼Ñ ºá»¿ß¿ ó ¬«¡Ñµ, ó φΓ«¼ ß½πτáÑ ∩ñα« πßΓá¡áó½¿óáÑΓ
- º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩, αáó¡«Ñ αẼÑαπ Σá⌐½á. ƒñα« óδñѽ∩ÑΓ ºá»¿ß∞ ó ½¿τ¡«⌐ (ºá¬-
- αδΓ«⌐) Γáí½¿µÑ ó áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ ºáñáτ¿, óδñѽѡ¡«¼ »α«µÑßßπ (Γáí½¿µá
- φΓá ¡áºδóáÑΓß∩ Γáí½¿µÑ⌐ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½«ó), ¿ ºá»«¼¿¡áÑΓ
- π¬áºáΓѽ∞ ¡á φΓπ ºá»¿ß∞. ô¬áºáΓѽѼ óδßΓπ»áÑΓ ñÑß¬α¿»Γ«α Σá⌐½á, ó«ºóαáΘáѼδ⌐
- »«½∞º«óáΓѽε. çỿß∞ ó Γáí½¿µÑ »«½∞º«óáΓѽ∞߬¿σ Σá⌐½«ó π¬áºδóáÑΓ ¡á ºá»¿ß∞ ó
- ú½«íá½∞¡«⌐ Γáí½¿µÑ Σá⌐½«ó.
-
-
- ───────────────────────────────────────
- (*) éßÑ ß¿ßΓѼ¡δÑ Σπ¡¬µ¿¿ ó«ºóαáΘáεΓ ó ß½πτáÑ ¡Ñπñáτ¡«ú« ºáóÑαΦÑ¡¿∩ ¬«ñ -1.
- è«ñ ó«ºóαáΓá, αáó¡δ⌐ -1, í«½∞ΦÑ ¡Ñ íπñÑΓ π»«¼¿¡áΓ∞ß∩ »α¿ αáßß¼«ΓαÑ¡¿¿
- ß¿¡Γá¬ß¿ßá ó맮óá ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐.
-
-
-
- 86
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ open │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ¿¼∩ Σá⌐½á │
- │ αѪ¿¼ «Γ¬αδΓ¿∩ │
- │ »αáóá ñ«ßΓπ»á (»α¿ ß«ºñá¡¿¿ Σá⌐½á) │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ñÑß¬α¿»Γ«α Σá⌐½á │
- │ { │
- │ »αÑóαáΓ¿Γ∞ ¿¼∩ Σá⌐½á ó ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¿¡ñѬßá (á½ú«α¿Γ¼ │
- │ namei); │
- │ Ñß½¿ (Σá⌐½ ¡Ñ ßπΘÑßΓóπÑΓ ¿½¿ ¬ ¡Ñ¼π ¡Ñ αáºαÑΦÑ¡ ñ«ßΓπ») │
- │ ó«ºóαáΓ¿Γ∞ (¬«ñ «Φ¿í¬¿); │
- │ óδñѽ¿Γ∞ ñ½∩ ¿¡ñѬßá ºá»¿ß∞ ó Γáí½¿µÑ Σá⌐½«ó, ¿¡¿µ¿á½¿- │
- │ º¿α«óáΓ∞ ßτÑΓτ¿¬, ß¼ÑΘÑ¡¿Ñ; │
- │ óδñѽ¿Γ∞ ºá»¿ß∞ ó Γáí½¿µÑ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó │
- │ Σá⌐½á, πßΓá¡«ó¿Γ∞ π¬áºáΓѽ∞ ¡á ºá»¿ß∞ ó Γáí½¿µÑ Σá⌐½«ó;│
- │ Ñß½¿ (αѪ¿¼ «Γ¬αδΓ¿∩ »«ñαáºπ¼ÑóáÑΓ πßÑτÑ¡¿Ñ Σá⌐½á) │
- │ «ßó«í«ñ¿Γ∞ óßÑ í½«¬¿ Σá⌐½á (á½ú«α¿Γ¼ free); │
- │ ß¡∩Γ∞ í½«¬¿α«ó¬π (ß ¿¡ñѬßá); /* ¿¡ñÑ¬ß ºáí½«¬¿α«óá¡ │
- │ óδΦÑ, ó á½ú«α¿Γ¼Ñ │
- │ namei */ │
- │ ó«ºóαáΓ¿Γ∞ (»«½∞º«óáΓѽ∞߬¿⌐ ñÑß¬α¿»Γ«α Σá⌐½á); │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.2. ǽú«α¿Γ¼ «Γ¬αδΓ¿∩ Σá⌐½á
-
-
- ÅαÑñ»«½«ª¿¼, τΓ« »α«µÑßß, «Γ¬αδóá∩ Σá⌐½ "/etc/passwd" ñóáªñδ, «ñ¿¡ αáº
- Γ«½∞¬« ñ½∩ τΓÑ¡¿∩ ¿ «ñ¿¡ αáº Γ«½∞¬« ñ½∩ ºá»¿ß¿, ¿ «ñ¡áªñδ Σá⌐½ "local" ñ½∩
- τΓÑ¡¿∩ ¿ ñ½∩ ºá»¿ß¿ (**), óδ»«½¡∩ÑΓ ß½ÑñπεΘ¿⌐ ¡áí«α «»ÑαáΓ«α«ó:
-
- fd1 = open("/etc/passwd",O_RDONLY);
- fd2 = open("local",O_RDWR);
- fd3 = open("/etc/passwd",O_WRONLY);
-
- ìá É¿ßπ¡¬Ñ 5.3 »«¬áºá¡á óºá¿¼«ßó∩º∞ ¼Ñªñπ Γáí½¿µÑ⌐ ¿¡ñѬ߫ó, Γáí½¿µÑ⌐
- Σá⌐½«ó ¿ Γáí½¿µÑ⌐ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½á. èáªñδ⌐ ó맮ó Σπ¡¬µ¿¿
- open ó«ºóαáΘáÑΓ »α«µÑßßπ ñÑß¬α¿»Γ«α Σá⌐½á, á ß««ΓóÑΓßΓóπεΘá∩ ºá»¿ß∞ ó Γáí½¿-
- µÑ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½á π¬áºδóáÑΓ ¡á π¡¿¬á½∞¡πε ºá»¿ß∞ ó Γáí-
- ½¿µÑ Σá⌐½«ó ∩ñαá, »πßΓ∞ ñáªÑ «ñ¿¡ ¿ ëà ªÑ Σá⌐½ ("/etc/passwd") «Γ¬αδóáÑΓß∩
- ñóáªñδ.
- çỿ߿ ó Γáí½¿µÑ Σá⌐½«ó ñ½∩ óßÑσ φ¬ºÑ¼»½∩α«ó «ñ¡«ú« ¿ Γ«ú« ªÑ «Γ¬αδΓ«ú«
- Σá⌐½á π¬áºδóáεΓ ¡á «ñ¡π ºá»¿ß∞ ó Γáí½¿µÑ ¿¡ñѬ߫ó, σαá¡∩Θ¿σß∩ ó »á¼∩Γ¿. Åα«-
- µÑßß ¼«ªÑΓ «íαáΘáΓ∞ß∩ ¬ Σá⌐½π "/etc/passwd" ß τΓÑ¡¿Ñ¼ ¿½¿ ºá»¿ß∞ε, ¡« Γ«½∞¬«
- τÑαѺ ñÑß¬α¿»Γ«αδ Σá⌐½á, ¿¼ÑεΘ¿Ñ º¡áτÑ¡¿∩ 3 ¿ 5 (ß¼. α¿ßπ¡«¬).ƒñα« ºá»«¼¿¡á-
- ÑΓ αáºαÑΦÑ¡¿Ñ ¡á τΓÑ¡¿Ñ ¿½¿ ºá»¿ß∞ ó Σá⌐½ ó ßΓα«¬Ñ Γáí½¿µδ Σá⌐½«ó,óδñѽѡ¡«⌐
- ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ open. ÅαÑñ»«½«ª¿¼, τΓ« óΓ«α«⌐ »α«µÑßß óδ»«½¡∩ÑΓ
- ß½ÑñπεΘ¿⌐ ¡áí«α «»ÑαáΓ«α«ó:
-
-
- ───────────────────────────────────────
- (**) é «»¿ßá¡¿¿ ó맮óá ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ open ß«ñÑαªáΓß∩ Γα¿ »áαá¼ÑΓαá (ΓαÑ-
- Γ¿⌐ ¿ß»«½∞ºπÑΓß∩ »α¿ «Γ¬αδΓ¿¿ ó αѪ¿¼Ñ ß«ºñá¡¿∩), ¡« »α«úαá¼¼¿ßΓδ «íδτ-
- ¡« ¿ß»«½∞ºπεΓ Γ«½∞¬« »ÑαóδÑ ñóá ¿º ¡¿σ. 諼»¿½∩Γ«α ß ∩ºδ¬á æ¿ ¡Ñ »α«óÑ-
- α∩ÑΓ »αáó¿½∞¡«ßΓ∞ ¬«½¿τÑßΓóá »áαá¼ÑΓα«ó. é ß¿ßΓÑ¼Ñ »ÑαóδÑ ñóá »áαá¼ÑΓαá
- ¿ ΓαÑΓ¿⌐ (ß ½εíδ¼ "¼πß«α«¼", τΓ« íδ ¡¿ »α«¿º«Φ½« ó ßΓѬÑ) »ÑαÑñáεΓß∩
- «íδτ¡« ∩ñαπ. ƒñα« ¡Ñ »α«óÑα∩ÑΓ ¡á½¿τ¿Ñ ΓαÑΓ∞Ñú« »áαá¼ÑΓαá, Ñß½¿ Γ«½∞¬«
- ¡Ñ«íσ«ñ¿¼«ßΓ∞ ó ¡Ñ¼ ¡Ñ óδΓѬáÑΓ ¿º º¡áτÑ¡¿∩ óΓ«α«ú« »áαá¼ÑΓαá, τΓ« »«º-
- ó«½∩ÑΓ »α«úαá¼¼¿ßΓá¼ π¬áºáΓ∞ Γ«½∞¬« ñóá »áαá¼ÑΓαá.
-
- 87
-
- Γáí½¿µá »«½∞º«óá-
- Γѽ∞߬¿σ ñÑß¬α¿»-
- Γ«α«ó Σá⌐½á Γáí½¿µá Σá⌐½«ó Γáí½¿µá ¿¡ñѬ߫ó
- ┌─────────┐ ┌────────────┐ ┌──────────────┐
- 0│ │ │ │ │ ∙ │
- ├─────────┤ │ │ │ ∙ │
- 1│ │ │ │ │ ∙ │
- ├─────────┤ ├────────────┤ │ ∙ │
- 2│ │ │ ∙ │ │ ∙ │
- ├─────────┤ │ ∙ │ │ ∙ │
- 3│ ────┼────┐ │ ∙ │ │ ∙ │
- ├─────────┤ │ │ ∙ │ ├──────────────┤
- 4│ ────┼───┐│ │ ∙ │ ┌────>│ ßτÑΓ- │
- ├─────────┤ ││ │ ∙ │ │┌───>│ τ¿¬ (/etc/ │
- 5│ ────┼──┐││ ├────────────┤ ││ │ 2 passwd)│
- ├─────────┤ │││ │ ßτÑΓ- │ ││ ├──────────────┤
- 6│ │ ││└──>│ τ¿¬ ùΓÑ¡¿Ñ┼──┘│ │ ∙ │
- ├─────────┤ ││ │ 1 │ │ │ ∙ │
- 7│ │ ││ ├────────────┤ │ │ ∙ │
- ├─────────┤ ││ │ ∙ │ │ │ ∙ │
- │ ∙ │ ││ │ ∙ │ │ │ ∙ │
- └─────────┘ ││ ├────────────┤ │ │ ∙ │
- ││ │ ßτÑΓ- ùΓÑ-│ │ │ ∙ │
- │└───>│ τ¿¬ ¡¿Ñ-┼───│─┐ │ ∙ │
- │ │ 1 çỿß∞│ │ │ │ ∙ │
- │ ├────────────┤ │ │ │ ∙ │
- │ │ ∙ │ │ │ ├──────────────┤
- │ │ ∙ │ │ │ │ ßτÑΓ- │
- │ │ ∙ │ │ └─>│ τ¿¬ (local)│
- │ │ ∙ │ │ │ 1 │
- │ │ ∙ │ │ ├──────────────┤
- │ ├────────────┤ │ │ ∙ │
- │ │ ßτÑΓ- │ │ │ ∙ │
- └────>│ τ¿¬ çỿß∞┼───┘ │ ∙ │
- │ 1 │ │ ∙ │
- ├────────────┤ │ ∙ │
- │ ∙ │ │ ∙ │
- │ ∙ │ │ ∙ │
- └────────────┘ └──────────────┘
-
-
- É¿ßπ¡«¬ 5.3. æΓαπ¬Γπαδ ñá¡¡δσ »«ß½Ñ «Γ¬αδΓ¿∩
-
-
- fd1 = open("/etc/passwd",O_RDONLY);
- fd2 = open("private",O_RDONLY);
-
- ìá É¿ßπ¡¬Ñ 5.4 »«¬áºá¡á óºá¿¼«ßó∩º∞ ¼Ñªñπ ß««ΓóÑΓßΓóπεΘ¿¼¿ ßΓαπ¬ΓπαἿ ñá¡-
- ¡δσ, ¬«úñá «íá »α«µÑßßá (¿ í«½∞ΦÑ ¡¿¬Γ«) ¿¼ÑεΓ «Γ¬αδΓδÑ Σá⌐½δ. æ¡«óá αѺπ½∞-
- ΓáΓ«¼ ¬áªñ«ú« ó맮óá Σπ¡¬µ¿¿ open ∩ó½∩ÑΓß∩ óδñѽѡ¿Ñ π¡¿¬á½∞¡«⌐ Γ«τ¬¿ óσ«ñá
- ó Γáí½¿µÑ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½á ¿ ó Γáí½¿µÑ Σá⌐½«ó ∩ñαá, ¿ ∩ñ-
- α« σαá¡¿Γ ¡Ñ í«½ÑÑ «ñ¡«⌐ ºá»¿ß¿ ¡á ¬áªñδ⌐ Σá⌐½ ó Γáí½¿µÑ ¿¡ñѬ߫ó, αẼÑΘÑ¡-
- ¡δσ ó »á¼∩Γ¿.
- çỿß∞ ó Γáí½¿µÑ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½á »« π¼«½τá¡¿ε σαá¡¿Γ
- ß¼ÑΘÑ¡¿Ñ ó Σá⌐½Ñ ñ« áñαÑßá ß½ÑñπεΘÑ⌐ «»Ñαᵿ¿ óó«ñáóδó«ñá ¿ π¬áºδóáÑΓ ¡Ñ»«ß-
- αÑñßΓóÑ¡¡« ¡á Γ«τ¬π óσ«ñá ó Γáí½¿µÑ ¿¡ñѬ߫ó ñ½∩ Σá⌐½á, πßΓαá¡∩∩ ¡Ñ«íσ«ñ¿-
- ¼«ßΓ∞ ó «Γñѽ∞¡«⌐ Γáí½¿µÑ Σá⌐½«ó ∩ñαá. éδΦÑ»α¿óÑñÑ¡¡δÑ »α¿¼Ñαδ »«¬áºδóáεΓ
- óºá¿¼«ßó∩º∞ ¼Ñªñπ ºá»¿ß∩¼¿ Γáí½¿µδ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½á ¿ ºá-
-
-
- 88
-
- Γáí½¿µδ »«½∞º«óá-
- Γѽ∞߬¿σ ñÑß¬α¿»-
- Γ«α«ó Σá⌐½á
- (»α«µÑßß A) Γáí½¿µá Σá⌐½«ó Γáí½¿µá ¿¡ñѬ߫ó
- ┌─────────┐ ┌────────────┐ ┌──────────────┐
- 0│ │ │ │ │ ∙ │
- ├─────────┤ │ │ │ ∙ │
- 1│ │ │ │ │ ∙ │
- ├─────────┤ ├────────────┤ │ ∙ │
- 2│ │ │ ∙ │ │ ∙ │
- ├─────────┤ │ ∙ │ │ ∙ │
- 3│ ────┼────┐ │ ∙ │ │ ∙ │
- ├─────────┤ │ │ ∙ │ ├──────────────┤
- 4│ ────┼───┐│ │ ∙ │ ┌────>│ ßτÑΓ- │
- ├─────────┤ ││ │ ∙ │ │┌───>│ τ¿¬ (/etc/ │
- 5│ ────┼──┐││ ├────────────┤ ││┌──>│ 3 passwd)│
- ├─────────┤ │││ │ ßτÑΓ- │ │││ ├──────────────┤
- │ ∙ │ ││└──>│ τ¿¬ ùΓÑ¡¿Ñ┼──┘││ │ ∙ │
- │ ∙ │ ││ │ 1 │ ││ │ ∙ │
- │ ∙ │ ││ ├────────────┤ ││ │ ∙ │
- └─────────┘ ││ │ ∙ │ ││ │ ∙ │
- ││ │ ∙ │ ││ │ ∙ │
- (»α«µÑßß B) ││ │ ∙ │ ││ │ ∙ │
- ┌─────────┐ ││ │ ∙ │ ││ │ ∙ │
- 0│ │ ││ ├────────────┤ ││ │ ∙ │
- ├─────────┤ ││ │ ßτÑΓ- ùΓÑ-│ ││ │ ∙ │
- 1│ │ │└───>│ τ¿¬ ¡¿Ñ-┼───││┐ │ ∙ │
- ├─────────┤ │ │ 1 çỿß∞│ │││ │ ∙ │
- 2│ │ │ ├────────────┤ │││ │ ∙ │
- ├─────────┤ │ │ ∙ │ │││ ├──────────────┤
- 3│ ────┼──│──┐ │ ∙ │ │││ │ ßτÑΓ- │
- ├─────────┤ │ │ │ ∙ │ ││└─>│ τ¿¬ (local)│
- 4│ ────┼─┐│ │ │ ∙ │ ││ │ 1 │
- ├─────────┤ ││ │ │ ∙ │ ││ ├──────────────┤
- 5│ │ ││ │ │ ∙ │ ││ │ ∙ │
- ├─────────┤ ││ │ ├────────────┤ ││ │ ∙ │
- │ ∙ │ ││ │ │ ßτÑΓ- │ ││ │ ∙ │
- │ ∙ │ ││ └─>│ τ¿¬ ùΓÑ¡¿Ñ┼───┘│ │ ∙ │
- │ ∙ │ ││ │ 1 │ │ │ ∙ │
- └─────────┘ ││ ├────────────┤ │ │ ∙ │
- ││ │ ∙ │ │ │ ∙ │
- ││ │ ∙ │ │ ├──────────────┤
- ││ │ ∙ │ │ │ ßτÑΓ- │
- ││ ├────────────┤ │┌─>│ τ¿¬ (private)│
- ││ │ ßτÑΓ- │ ││ │ 1 │
- │└────>│ τ¿¬ çỿß∞┼────┘│ ├──────────────┤
- │ │ 1 │ │ │ ∙ │
- │ ├────────────┤ │ │ ∙ │
- │ │ ∙ │ │ └──────────────┘
- │ │ ∙ │ │
- │ ├────────────┤ │
- │ │ ßτÑΓ- │ │
- └─────>│ τ¿¬ ùΓÑ¡¿Ñ┼─────┘
- │ 1 │
- └────────────┘
-
- É¿ßπ¡«¬ 5.4. æΓαπ¬Γπαδ ñá¡¡δσ »«ß½Ñ Γ«ú«, ¬á¬ ñóá »α«µÑßßá
- »α«¿ºóѽ¿ «Γ¬αδΓ¿Ñ Σá⌐½«ó
-
-
- 89
-
-
-
- »¿ß∩¼¿ ó Γáí½¿µÑ Σá⌐½«ó ∩ñαá Γ¿»á "«ñ¿¡ ¬ «ñ¡«¼π". Æ«¼»ß«¡, «ñ¡á¬«, «Γ¼Ñτá-
- ÑΓ, τΓ« ¿¼ íδ½á αÑ὿º«óá¡á Γáí½¿µá Σá⌐½«ó ¬á¬ «Γñѽ∞¡á∩ ßΓαπ¬Γπαá, »«ºó«½∩-
- εΘá∩ ß«ó¼ÑßΓ¡« ¿ß»«½∞º«óáΓ∞ «ñ¿¡ ¿ ëà ªÑ π¬áºáΓѽ∞ ß¼ÑΘÑ¡¿∩ ¡Ñ߬«½∞¬¿¼
- »«½∞º«óáΓѽ∞߬¿¼ ñÑß¬α¿»Γ«αá¼ Σá⌐½á (ß¼. [Thompson 78], ßΓα.1943). é ß¿ßΓѼ-
- ¡δσ Σπ¡¬µ¿∩σ dup ¿ fork, αáßß¼áΓα¿óáѼδσ ó αáºñѽáσ 5.13 ¿ 7.1, »α¿ αáí«ΓÑ
- ß« ßΓαπ¬ΓπαἿ ñá¡¡δσ ñ«»π߬áÑΓß∩ Γá¬«Ñ ß«ó¼ÑßΓ¡«Ñ ¿ß»«½∞º«óá¡¿Ñ.
-
- ÅÑαóδÑ Γα¿ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«αá (0, 1 ¿ 2) ¿¼Ñ¡πεΓß∩ ñÑß¬α¿»Γ«-
- αἿ Σá⌐½«ó: ßΓá¡ñáαΓ¡«ú« óó«ñá, ßΓá¡ñáαΓ¡«ú« óδó«ñá ¿ ßΓá¡ñáαΓ¡«ú« Σá⌐½á
- «Φ¿í«¬. Åα«µÑßßδ ó ß¿ßΓÑ¼Ñ UNIX »« ñ«ú«ó«αÑ¡¡«ßΓ¿ ¿ß»«½∞ºπεΓ ñÑß¬α¿»Γ«α Σá⌐-
- ½á ßΓá¡ñáαΓ¡«ú« óó«ñá »α¿ τΓÑ¡¿¿ óó«ñ¿¼«⌐ ¿¡Σ«α¼áµ¿¿, ñÑß¬α¿»Γ«α Σá⌐½á ßΓá¡-
- ñáαΓ¡«ú« óδó«ñá »α¿ ºá»¿ß¿ óδó«ñ¿¼«⌐ ¿¡Σ«α¼áµ¿¿ ¿ ñÑß¬α¿»Γ«α ßΓá¡ñáαΓ¡«ú«
- Σá⌐½á «Φ¿í«¬ ñ½∩ ºá»¿ß¿ ß««íΘÑ¡¿⌐ «í «Φ¿í¬áσ. é «»Ñαᵿ«¡¡«⌐ ß¿ßΓÑ¼Ñ ¡ÑΓ ¡¿-
- ¬á¬«ú« π¬áºá¡¿∩ ¡á Γ«, τΓ« φΓ¿ ñÑß¬α¿»Γ«αδ Σá⌐½«ó ∩ó½∩εΓß∩ ߻ѵ¿á½∞¡δ¼¿.
- âαπ»»á »«½∞º«óáΓѽÑ⌐ ¼«ªÑΓ πß½«ó¿Γ∞ß∩ « Γ«¼, τΓ« Σá⌐½«óδÑ ñÑß¬α¿»Γ«αδ, ¿¼Ñε-
- Θ¿Ñ º¡áτÑ¡¿∩ 4, 6 ¿ 11, ∩ó½∩εΓß∩ ߻ѵ¿á½∞¡δ¼¿, ¡« í«½ÑÑ ÑßΓÑßΓóÑ¡¡« ¡áτ¿¡áΓ∞
- «ΓßτÑΓ ß 0 (¬á¬ ó ∩ºδ¬Ñ æ¿). Åα¿¡∩Γ¿Ñ ß«ú½áΦÑ¡¿∩ ßαáºπ óßѼ¿ »«½∞º«óáΓѽ∞-
- ߬¿¼¿ »α«úαἼἿ «í½Ñúτ¿Γ ßó∩º∞ ¼Ñªñπ ¡¿¼¿ »α¿ ¿ß»«½∞º«óá¡¿¿ ¬á¡á½«ó, ó τѼ
- ¼δ πíÑñ¿¼ß∩ ó ñá½∞¡Ñ⌐ΦѼ, ¿ºπτá∩ ú½áóπ 7. Äíδτ¡« «»ÑαáΓ«α߬¿⌐ ΓÑନ¡á½ (ß¼.
- ú½áóπ 10) ß½πª¿Γ ¿ ó ¬áτÑßΓóÑ ßΓá¡ñáαΓ¡«ú« óó«ñá, ¿ ó ¬áτÑßΓóÑ ßΓá¡ñáαΓ¡«ú«
- óδó«ñá ¿ ó ¬áτÑßΓóÑ ßΓá¡ñáαΓ¡«ú« πßΓα«⌐ßΓóá óδó«ñá ß««íΘÑ¡¿⌐ «í «Φ¿í¬áσ.
-
-
- E5.2 READF
-
- æ¿¡Γá¬ß¿ß ó맮óá ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ read (τ¿ΓáΓ∞):
- number = read(fd,buffer,count)
-
- úñÑ fd - ñÑß¬α¿»Γ«α Σá⌐½á, ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐ open, buffer - áñαÑß ßΓαπ¬-
- Γπαδ ñá¡¡δσ ó »«½∞º«óáΓѽ∞߬«¼ »α«µÑßßÑ, úñÑ íπñπΓ αẼÑΘáΓ∞ß∩ ßτ¿Γá¡¡δÑ
- ñá¡¡δÑ ó ß½πτáÑ πß»ÑΦ¡«ú« ºáóÑαΦÑ¡¿∩ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ read, count - ¬«½¿-
- τÑßΓó« íá⌐Γ, ¬«Γ«αδÑ »«½∞º«óáΓÑ½ε ¡πª¡« »α«τ¿ΓáΓ∞, number - ¬«½¿τÑßΓó« Σá¬-
- Γ¿τÑ߬¿ »α«τ¿Γá¡¡δσ íá⌐Γ. ìá É¿ßπ¡¬Ñ 5.5 »α¿óÑñÑ¡ á½ú«α¿Γ¼ read, óδ»«½¡∩εΘ¿⌐
- τΓÑ¡¿Ñ «íδτ¡«ú« Σá⌐½á. ƒñα« «íαáΘáÑΓß∩ ó Γáí½¿µÑ Σá⌐½«ó ¬ ºá»¿ß¿, ¬«Γ«αá∩
- ß««ΓóÑΓßΓóπÑΓ º¡áτÑ¡¿ε »«½∞º«óáΓѽ∞߬«ú« ñÑß¬α¿»Γ«αá Σá⌐½á, ß½Ññπ∩
- ºá π¬áºáΓѽѼ (ß¼. É¿ßπ¡«¬ 5.3). çáΓѼ «¡« πßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿∩ ¡Ñ߬«½∞¬¿σ
- »áαá¼ÑΓα«ó óó«ñá-óδó«ñá ó áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ »α«µÑßßá (É¿ßπ¡«¬ 5.6), ΓѼ
- ßá¼δ¼ πßΓαá¡∩∩ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ó ¿σ »ÑαÑñáτÑ ó ¬áτÑßΓóÑ »áαá¼ÑΓα«ó Σπ¡¬µ¿¿. é
- τáßΓ¡«ßΓ¿, ∩ñα« π¬áºδóáÑΓ ó ¬áτÑßΓóÑ αѪ¿¼á óó«ñá-óδó«ñá "τΓÑ¡¿Ñ", πßΓá¡áó-
- ½¿óáÑΓ Σ½áú, ßó¿ñÑΓѽ∞ßΓóπεΘ¿⌐ « Γ«¼, τΓ« óó«ñ-óδó«ñ ¡á»αáó½∩ÑΓß∩ ó áñαÑß¡«Ñ
- »α«ßΓαá¡ßΓó« »«½∞º«óáΓѽ∩, º¡áτÑ¡¿Ñ »«½∩ ßτÑΓτ¿¬á íá⌐Γ«ó »α¿αáó¡¿óáÑΓ ¬«½¿-
- τÑßΓóπ íá⌐Γ, ¬«Γ«αδÑ íπñπΓ »α«τ¿Γá¡δ, πßΓá¡áó½¿óáÑΓ áñαÑß »«½∞º«óáΓѽ∞߬«ú«
- íπΣÑαá ñá¡¡δσ ¿, ¡á¬«¡Ñµ, º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ (¿º Γáí½¿µδ Σá⌐½«ó), αáó¡«Ñ ß¼Ñ-
- ΘÑ¡¿ε ó íá⌐Γáσ ó¡πΓα¿ Σá⌐½á ñ« ¼ÑßΓá, «Γ¬πñá ¡áτ¿¡áÑΓß∩ óó«ñ-óδó«ñ. ū߽Ñ
- Γ«ú«, ¬á¬ ∩ñα« πßΓá¡«ó¿Γ º¡áτÑ¡¿∩ »áαá¼ÑΓα«ó óó«ñá-óδó«ñá ó áñαÑß¡«¼ »α«ßΓ-
- αá¡ßΓóÑ »α«µÑßßá, «¡« «íαáΘáÑΓß∩ ¬ ¿¡ñѬßπ, ¿ß»«½∞ºπ∩ π¬áºáΓѽ∞ ¿º Γáí½¿µδ
- Σá⌐½«ó, ¿ í½«¬¿απÑΓ Ñú« »αѪñÑ, τѼ ¡áτáΓ∞ τΓÑ¡¿Ñ ¿º Σá⌐½á.
-
- çáΓѼ ó á½ú«α¿Γ¼Ñ ¡áτ¿¡áÑΓß∩ µ¿¬½, óδ»«½¡∩εΘ¿⌐ß∩ ñ« ΓÑσ »«α, »«¬á «»Ñαá-
- µ¿∩ τΓÑ¡¿∩ ¡Ñ íπñÑΓ »α«¿ºóÑñÑ¡á ñ« ¬«¡µá. ƒñα« »αÑ«íαáºπÑΓ ß¼ÑΘÑ¡¿Ñ ó íá⌐Γáσ
- ó¡πΓα¿ Σá⌐½á ó ¡«¼Ñα í½«¬á, ¿ß»«½∞ºπ∩ á½-
-
-
-
-
-
-
-
- 90
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ read │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: »«½∞º«óáΓѽ∞߬¿⌐ ñÑß¬α¿»Γ«α Σá⌐½á │
- │ áñαÑß íπΣÑαá ó »«½∞º«óáΓѽ∞߬«¼ »α«- │
- │ µÑßßÑ │
- │ ¬«½¿τÑßΓó« íá⌐Γ, ¬«Γ«αδÑ ¡πª¡« »α«τ¿- │
- │ ΓáΓ∞ │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ¬«½¿τÑßΓó« íá⌐Γ, ߬«»¿α«óá¡¡δσ ó »«½∞-│
- │ º«óáΓѽ∞߬«Ñ »α«ßΓαá¡ßΓó« │
- │ { │
- │ «íαáΓ¿Γ∞ß∩ ¬ ºá»¿ß¿ ó Γáí½¿µÑ Σá⌐½«ó »« º¡áτÑ¡¿ε »«½∞º«-│
- │ óáΓѽ∞߬«ú« ñÑß¬α¿»Γ«αá Σá⌐½á; │
- │ »α«óÑα¿Γ∞ ñ«ßΓπ»¡«ßΓ∞ Σá⌐½á; │
- │ πßΓá¡«ó¿Γ∞ »áαá¼ÑΓαδ ó áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ »α«µÑßßá, │
- │ π¬áºáó áñαÑß »«½∞º«óáΓѽ∩, ßτÑΓτ¿¬ íá⌐Γ«ó, »áαá¼ÑΓαδ │
- │ óó«ñá-óδó«ñá ñ½∩ »«½∞º«óáΓѽ∩; │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß »« ºá»¿ß¿ ó Γáí½¿µÑ Σá⌐½«ó; │
- │ ºáí½«¬¿α«óáΓ∞ ¿¡ñѬß; │
- │ πßΓá¡«ó¿Γ∞ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ó íá⌐Γáσ ñ½∩ áñαÑß¡«ú« │
- │ »α«ßΓαá¡ßΓóá »α«µÑßßá »« º¡áτÑ¡¿ε ß¼ÑΘÑ¡¿∩ ó Γáí½¿µÑ │
- │ Σá⌐½«ó; │
- │ óδ»«½¡¿Γ∞ (»«¬á º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á íá⌐Γ«ó ¡Ñ ßΓá¡ÑΓ πñ«ó-│
- │ ½ÑΓó«α¿Γѽ∞¡δ¼) │
- │ { │
- │ »αÑóαáΓ¿Γ∞ ß¼ÑΘÑ¡¿Ñ ó Σá⌐½Ñ ó ¡«¼Ñα ñ¿ß¬«ó«ú« í½«¬á │
- │ (á½ú«α¿Γ¼ bmap); │
- │ óδτ¿ß½¿Γ∞ ß¼ÑΘÑ¡¿Ñ ó¡πΓα¿ í½«¬á ¿ ¬«½¿τÑßΓó« íá⌐Γ, │
- │ ¬«Γ«αδÑ íπñπΓ »α«τ¿Γá¡δ; │
- │ Ñß½¿ (¬«½¿τÑßΓó« íá⌐Γ ñ½∩ τΓÑ¡¿∩ αáó¡« 0) │
- │ /* »«»δΓ¬á τΓÑ¡¿∩ ¬«¡µá Σá⌐½á */ │
- │ »αÑαóáΓ∞ß∩; /* óδσ«ñ ¿º µ¿¬½á */ │
- │ »α«τ¿ΓáΓ∞ í½«¬ (á½ú«α¿Γ¼ breada, Ñß½¿ »α«¿ºó«ñ¿Γß∩ │
- │ τΓÑ¡¿Ñ ß »α«ñó¿ªÑ¡¿Ñ¼, ¿ á½ú«α¿Γ¼ bread - ó »α«Γ¿ó- │
- │ ¡«¼ ß½πτáÑ); │
- │ ߬«»¿α«óáΓ∞ ñá¡¡δÑ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá »« áñαÑßπ │
- │ »«½∞º«óáΓѽ∩; │
- │ ߬«ααÑ¬Γ¿α«óáΓ∞ º¡áτÑ¡¿∩ »«½Ñ⌐ ó áñαÑß¡«¼ »α«ßΓαá¡- │
- │ ßΓóÑ »α«µÑßßá, π¬áºδóáεΘ¿Ñ ß¼ÑΘÑ¡¿Ñ ó íá⌐Γáσ ó¡πΓα¿ │
- │ Σá⌐½á, ¬«½¿τÑßΓó« »α«τ¿Γá¡¡δσ íá⌐Γ ¿ áñαÑß ñ½∩ »Ñ- │
- │ αÑñáτ¿ ó »α«ßΓαá¡ßΓó« »«½∞º«óáΓѽ∩; │
- │ «ßó«í«ñ¿Γ∞ íπΣÑα; /* ºáí½«¬¿α«óá¡¡δ⌐ ó á½ú«α¿Γ¼Ñ │
- │ bread */ │
- │ } │
- │ αáºí½«¬¿α«óáΓ∞ ¿¡ñѬß; │
- │ ߬«ααÑ¬Γ¿α«óáΓ∞ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ó Γáí½¿µÑ Σá⌐½«ó ñ½∩ │
- │ ß½ÑñπεΘÑ⌐ «»Ñαᵿ¿ τΓÑ¡¿∩; │
- │ ó«ºóαáΓ¿Γ∞ («íΘÑÑ τ¿ß½« »α«τ¿Γá¡¡δσ íá⌐Γ); │
- │ } │
- └────────────────────────────────────────────────────────────┘
- É¿ßπ¡«¬ 5.5. ǽú«α¿Γ¼ τΓÑ¡¿∩ ¿º Σá⌐½á
-
- ┌──────────────────────────────────────────────────────┐
- │ mode τΓÑ¡¿Ñ ¿½¿ ºá»¿ß∞ │
- │ count ¬«½¿τÑßΓó« íá⌐Γ ñ½∩ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿ │
- │ offset ß¼ÑΘÑ¡¿Ñ ó íá⌐Γáσ ó¡πΓα¿ Σá⌐½á │
- │ address áñαÑß ¼ÑßΓá, ¬πñá íπñπΓ ¬«»¿α«óáΓ∞ß∩ ñá¡¡δÑ,│
- │ ó »á¼∩Γ¿ »«½∞º«óáΓѽ∩ ¿½¿ ∩ñαá │
- │ flag «Γ¡«ΦÑ¡¿Ñ áñαÑßá ¬ »á¼∩Γ¿ »«½∞º«óáΓѽ∩ ¿½¿ │
- │ ¬ »á¼∩Γ¿ ∩ñαá │
- └──────────────────────────────────────────────────────┘
- É¿ßπ¡«¬ 5.6. Åáαá¼ÑΓαδ óó«ñá-óδó«ñá, σαá¡∩Θ¿Ñß∩ ó »α«ßΓαá¡ßΓóÑ »α«µÑßßá
- 91
-
- ú«α¿Γ¼ bmap, ¿ óδτ¿ß½∩ÑΓ ß¼ÑΘÑ¡¿Ñ ó¡πΓα¿ í½«¬á ñ« ¼ÑßΓá, «Γ¬πñá ß½ÑñπÑΓ ¡á-
- τáΓ∞ óó«ñ-óδó«ñ, á Γá¬ªÑ ¬«½¿τÑßΓó« íá⌐Γ, ¬«Γ«αδÑ íπñπΓ »α«τ¿Γá¡δ ¿º í½«¬á.
- Å«ß½Ñ ßτ¿Γδóá¡¿∩ í½«¬á ó íπΣÑα, 󫺼«ª¡«, ß »α«ñó¿ªÑ¡¿Ñ¼ (á½ú«α¿Γ¼δ bread ¿
- breada) ∩ñα« ¬«»¿απÑΓ ñá¡¡δÑ ¿º í½«¬á »« ¡áº¡áτÑ¡¡«¼π áñαÑßπ ó »«½∞º«óáΓѽ∞-
- ߬«¼ »α«µÑßßÑ. Ä¡« ¬«ααÑ¬Γ¿απÑΓ »áαá¼ÑΓαδ óó«ñá-óδó«ñá ó áñαÑß¡«¼ »α«ßΓαá¡ß-
- ΓóÑ »α«µÑßßá ó ß««ΓóÑΓßΓó¿¿ ß ¬«½¿τÑßΓó«¼ »α«τ¿Γá¡¡δσ íá⌐Γ, πóѽ¿τ¿óá∩ º¡á-
- τÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ó íá⌐Γáσ ó¡πΓα¿ Σá⌐½á ¿ áñαÑß ¼ÑßΓá ó »«½∞º«óáΓѽ∞߬«¼ »α«-
- µÑßßÑ, ¬πñá íπñÑΓ ñ«ßΓáó½Ñ¡á ß½ÑñπεΘá∩ »«αµ¿∩ ñá¡¡δσ, ¿ π¼Ñ¡∞Φá∩ τ¿ß½« íá⌐Γ,
- ¬«Γ«αδÑ ¡Ñ«íσ«ñ¿¼« »α«τ¿ΓáΓ∞, τΓ«íδ óδ»«½¡¿Γ∞ ºá»α«ß »«½∞º«óáΓѽ∩. àß½¿ ºá»-
- α«ß »«½∞º«óáΓѽ∩ ¡Ñ πñ«ó½ÑΓó«αÑ¡, ∩ñα« »«óΓ«α∩ÑΓ óÑß∞ µ¿¬½, »αÑ«íαáºπ∩ ß¼Ñ-
- ΘÑ¡¿Ñ ó íá⌐Γáσ ó¡πΓα¿ Σá⌐½á ó ¡«¼Ñα í½«¬á, ßτ¿Γδóá∩ í½«¬ ß ñ¿ß¬á ó ß¿ßΓѼ¡δ⌐
- íπΣÑα, ¬«»¿απ∩ ñá¡¡δÑ ¿º íπΣÑαá ó »«½∞º«óáΓѽ∞߬¿⌐ »α«µÑßß, «ßó«í«ªñá∩ íπΣÑα
- ¿ ¬«ααÑ¬Γ¿απ∩ º¡áτÑ¡¿∩ »áαá¼ÑΓα«ó óó«ñá-óδó«ñá ó áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ »α«-
- µÑßßá. û¿¬½ ºáóÑαΦáÑΓß∩, ½¿í« ¬«úñá ∩ñα« óδ»«½¡¿Γ ºá»α«ß »«½∞º«óáΓѽ∩ »«½-
- ¡«ßΓ∞ε, ½¿í« ¬«úñá ó Σá⌐½Ñ í«½∞ΦÑ ¡Ñ íπñÑΓ ñá¡¡δσ, ½¿í« Ñß½¿ ∩ñα« «í¡áαπª¿Γ
- «Φ¿í¬π »α¿ τΓÑ¡¿¿ ñá¡¡δσ ß ñ¿ß¬á ¿½¿ »α¿ ¬«»¿α«óá¡¿¿ ñá¡¡δσ ó »α«ßΓαá¡ßΓó«
- »«½∞º«óáΓѽ∩. ƒñα« ¬«ααÑ¬Γ¿απÑΓ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ó Γáí½¿µÑ Σá⌐½«ó ó ß««Γ-
- óÑΓßΓó¿¿ ß ¬«½¿τÑßΓó«¼ Σá¬Γ¿τÑ߬¿ »α«τ¿Γá¡¡δσ íá⌐Γ; »«φΓ«¼π πß»ÑΦ¡«Ñ óδ»«½-
- ¡Ñ¡¿Ñ «»Ñαᵿ⌐ τΓÑ¡¿∩ óδú½∩ñ¿Γ ¬á¬ »«ß½Ññ«óáΓѽ∞¡«Ñ ßτ¿Γδóá¡¿Ñ ñá¡¡δσ ¿º
- Σá⌐½á. æ¿ßΓѼ¡á∩ «»Ñαᵿ∩ lseek (αáºñѽ 5.6) πßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩
- ó Γáí½¿µÑ Σá⌐½«ó ¿ ¿º¼Ñ¡∩ÑΓ »«α∩ñ«¬, ó ¬«Γ«α«¼ »α«µÑßß τ¿ΓáÑΓ ¿½¿ ºá»¿ßδóáÑΓ
- ñá¡¡δÑ ó Σá⌐½Ñ.
-
- ┌──────────────────────────────────────────────────────┐
- │ #include <fcntl.h> │
- │ main() │
- │ { │
- │ int fd; │
- │ char lilbuf[20],bigbuf[1024]; │
- │ │
- │ fd = open("/etc/passwd",O_RDONLY); │
- │ read(fd,lilbuf,20); │
- │ read(fd,bigbuf,1024); │
- │ read(fd,lilbuf,20); │
- │ } │
- └──────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.7. Åα¿¼Ñα »α«úαá¼¼δ τΓÑ¡¿∩ ¿º Σá⌐½á
-
-
- Éáßß¼«Γα¿¼ »α«úαá¼¼π, »α¿óÑñÑ¡¡πε ¡á É¿ßπ¡¬Ñ 5.7. öπ¡¬µ¿∩ open ó«ºóαáΘá-
- ÑΓ ñÑß¬α¿»Γ«α Σá⌐½á, ¬«Γ«αδ⌐ »«½∞º«óáΓѽ∞ ºáßδ½áÑΓ ó »ÑαѼѡ¡πε fd ¿ ¿ß»«½∞-
- ºπÑΓ ó »«ß½ÑñπεΘ¿σ ó맮óáσ Σπ¡¬µ¿¿ read. éδ»«½¡∩∩ Σπ¡¬µ¿ε read, ∩ñα« »α«óÑ-
- α∩ÑΓ, »αáó¿½∞¡« ½¿ ºáñá¡ »áαá¼ÑΓα "ñÑß¬α¿»Γ«α Σá⌐½á", á Γá¬ªÑ íδ½ ½¿ Σá⌐½
- »αÑñóáα¿Γѽ∞¡« «Γ¬αδΓ »α«µÑßß«¼ ñ½∩ τΓÑ¡¿∩. Ä¡« ß«σαá¡∩ÑΓ º¡áτÑ¡¿Ñ áñαÑßá
- »«½∞º«óáΓѽ∞߬«ú« íπΣÑαá, ¬«½¿τÑßΓó« ßτ¿ΓδóáѼδσ íá⌐Γ ¿ ¡áτá½∞¡«Ñ ß¼ÑΘÑ¡¿Ñ ó
- íá⌐Γáσ ó¡πΓα¿ Σá⌐½á (ß««ΓóÑΓßΓóÑ¡¡«: lilbuf, 20 ¿ 0), ó »α«ßΓαá¡ßΓóÑ »α«µÑß-
- ßá. é αѺπ½∞ΓáΓÑ óδτ¿ß½Ñ¡¿⌐ «¬áºδóáÑΓß∩, τΓ« ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ß««Γ-
- óÑΓßΓóπÑΓ ¡π½Ñó«¼π í½«¬π Σá⌐½á, ¿ ∩ñα« ó«ºóαáΘáÑΓ Γ«τ¬π óσ«ñá ó ¿¡ñѬß, ß«-
- «ΓóÑΓßΓóπεΘπε ¡π½Ñó«¼π í½«¬π. ÅαÑñ»«½áúá∩, τΓ« Γᬫ⌐ í½«¬ ßπΘÑßΓóπÑΓ, ∩ñα«
- ßτ¿ΓδóáÑΓ »«½¡δ⌐ í½«¬ αẼÑα«¼ 1024 íá⌐Γá ó íπΣÑα, ¡« »« áñαÑßπ lilbuf ¬«»¿-
- απÑΓ Γ«½∞¬« 20 íá⌐Γ. Ä¡« πóѽ¿τ¿óáÑΓ ß¼ÑΘÑ¡¿Ñ ó¡πΓα¿ »α«ßΓαá¡ßΓóá »α«µÑßßá
- ¡á 20 íá⌐Γ ¿ ßíαáßδóáÑΓ ßτÑΓτ¿¬ ñá¡¡δσ ó 0. ū߬«½∞¬π «»Ñαᵿ∩ read óδ»«½¡¿-
- ½áß∞, ∩ñα« »ÑαÑπßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ó Γáí½¿µÑ Σá⌐½«ó ¡á 20, Γá¬
- τΓ« »«ß½ÑñπεΘ¿Ñ «»Ñαᵿ¿ τΓÑ¡¿∩ ¿º Σá⌐½á ß ñá¡¡δ¼ ñÑß¬α¿»Γ«α«¼ ¡áτ¡πΓß∩ ß
- ¼ÑßΓá, αáß»«½«ªÑ¡¡«ú« ß« ß¼ÑΘÑ¡¿Ñ¼ 20 íá⌐Γ «Γ ¡áτá½á Σá⌐½á, á ß¿ßΓѼ¡á∩ Σπ¡-
- ¬µ¿∩ ó«ºóαáΘáÑΓ τ¿ß½« íá⌐Γ, Σá¬Γ¿τÑ߬¿ »α«τ¿Γá¡¡δσ, Γ.Ñ. 20.
- Åα¿ »«óΓ«α¡«¼ ó맮óÑ Σπ¡¬µ¿¿ read ∩ñα« ó¡«ó∞ »α«óÑα∩ÑΓ ¬«ααÑ¬Γ¡«ßΓ∞ π¬á-
- ºá¡¿∩ ñÑß¬α¿»Γ«αá ¿ ¡á½¿τ¿Ñ ß««ΓóÑΓßΓóπεΘÑú« Σá⌐½á, «Γ¬αδΓ«ú« »α«µÑßß«¼ ñ½∩
-
- 92
-
- τΓÑ¡¿∩, »«ß¬«½∞¬π «¡« ¡¿¬á¬ ¡Ñ ¼«ªÑΓ πº¡áΓ∞, τΓ« ºá»α«ß »«½∞º«óáΓѽ∩ ¡á τΓÑ-
- ¡¿Ñ ¬áßáÑΓß∩ Γ«ú« ªÑ ßἫú« Σá⌐½á, ßπΘÑßΓó«óá¡¿Ñ ¬«Γ«α«ú« í佫 πßΓá¡«ó½Ñ¡«
- ó« óαѼ∩ »«ß½Ññ¡Ñú« ó맮óá Σπ¡¬µ¿¿. ƒñα« ß«σαá¡∩ÑΓ ó »α«ßΓαá¡ßΓóÑ »α«µÑßßá
- »«½∞º«óáΓѽ∞߬¿⌐ áñαÑß bigbuf, ¬«½¿τÑßΓó« íá⌐Γ, ¬«Γ«αδÑ ¡πª¡« »α«τ¿ΓáΓ∞ »α«-
- µÑßßπ (1024), ¿ ¡áτá½∞¡«Ñ ß¼ÑΘÑ¡¿Ñ ó Σá⌐½Ñ (20), óº∩Γ«Ñ ¿º Γáí½¿µδ Σá⌐½«ó.
- ƒñα« »αÑ«íαáºπÑΓ ß¼ÑΘÑ¡¿Ñ ó¡πΓα¿ Σá⌐½á ó ¡«¼Ñα ñ¿ß¬«ó«ú« í½«¬á, ¬á¬ αá¡∞ΦÑ,
- ¿ ßτ¿ΓδóáÑΓ í½«¬. àß½¿ ¼Ñªñπ ó맮óἿ Σπ¡¬µ¿¿ read »α«Φ½« ¡Ñ»α«ñ«½ª¿Γѽ∞¡«Ñ
- óαѼ∩, ÑßΓ∞ Φá¡ßδ, τΓ« í½«¬ ¡áσ«ñ¿Γß∩ ó íπΣÑα¡«¼ ¬ÑΦÑ. Äñ¡á¬«, ∩ñα« ¡Ñ ¼«ªÑΓ
- »«½¡«ßΓ∞ε πñ«ó½ÑΓó«α¿Γ∞ ºá»α«ß »«½∞º«óáΓѽ∩ ¡á τΓÑ¡¿Ñ ºá ßτÑΓ ß«ñÑন¼«ú«
- íπΣÑαá, »«ß¬«½∞¬π Γ«½∞¬« 1004 íá⌐Γá ¿º 1024 ñ½∩ ñá¡¡«ú« ºá»α«ßá ¡áσ«ñ∩Γß∩ ó
- íπΣÑαÑ. Å«φΓ«¼π «¡« ¬«»¿απÑΓ «ßΓáóΦ¿Ñß∩ 1004 íá⌐Γá ¿º íπΣÑαá ó »«½∞º«óáΓѽ∞-
- ߬πε ßΓαπ¬Γπαπ ñá¡¡δσ bigbuf ¿ ¬«ααÑ¬Γ¿απÑΓ »áαá¼ÑΓαδ ó »α«ßΓαá¡ßΓóÑ »α«µÑß-
- ßá Γᬿ¼ «íαẫ¼, τΓ«íδ ß½ÑñπεΘ¿⌐ Φáú µ¿¬½á τΓÑ¡¿∩ ¡áτ¿¡á½ß∩ ó Σá⌐½Ñ ß íá⌐Γá
- 1024, »α¿ φΓ«¼ ñá¡¡δÑ ß½ÑñπÑΓ ¬«»¿α«óáΓ∞ »« áñαÑßπ íá⌐Γá 1004 ó bigbuf ó «í-
- ΩÑ¼Ñ 20 íá⌐Γ, τΓ«íδ πñ«ó½ÑΓó«α¿Γ∞ ºá»α«ß ¡á τΓÑ¡¿Ñ.
- ÆÑ»Ñα∞ ∩ñα« »ÑαÑσ«ñ¿Γ ¬ ¡áτá½π µ¿¬½á, ß«ñÑαªáΘÑú«ß∩ ó á½ú«α¿Γ¼Ñ read.
- Ä¡« »αÑ«íαáºπÑΓ ß¼ÑΘÑ¡¿Ñ ó íá⌐Γáσ (1024) ó ¡«¼Ñα ½«ú¿τÑ߬«ú« í½«¬á (1), «í-
- αáΘáÑΓß∩ ¬« óΓ«α«¼π í½«¬π »α∩¼«⌐ áñαÑßᵿ¿, ¡«¼Ñα ¬«Γ«α«ú« σαá¡¿Γß∩ ó ¿¡ñѬ-
- ßÑ, ¿ «Γδ߬¿óáÑΓ Γ«τ¡δ⌐ ñ¿ß¬«óδ⌐ í½«¬, ¿º ¬«Γ«α«ú« íπñÑΓ »α«¿ºó«ñ¿Γ∞ß∩ τΓÑ-
- ¡¿Ñ. ƒñα« ßτ¿ΓδóáÑΓ í½«¬ ¿º íπΣÑα¡«ú« ¬ÑΦá ¿½¿ ß ñ¿ß¬á, Ñß½¿ ó ¬ÑΦÑ ñá¡¡δ⌐
- í½«¬ «ΓßπΓßΓóπÑΓ. ìᬫ¡Ñµ, «¡« ¬«»¿απÑΓ 20 íá⌐Γ ¿º íπΣÑαá »« πΓ«τ¡Ñ¡¡«¼π áñ-
- αÑßπ ó »«½∞º«óáΓѽ∞߬¿⌐ »α«µÑßß. ÅαѪñÑ τѼ óδ⌐Γ¿ ¿º ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿, ∩ñα«
- πßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ »«½∩ ß¼ÑΘÑ¡¿∩ ó Γáí½¿µÑ Σá⌐½«ó αáó¡δ¼ 1044, Γ« ÑßΓ∞
- αáó¡δ¼ º¡áτÑ¡¿ε ß¼ÑΘÑ¡¿∩ ó íá⌐Γáσ ñ« ¼ÑßΓá, ¬πñá íπñÑΓ »α«¿ºó«ñ¿Γ∞ß∩ ß½Ññπε-
- ΘÑÑ «íαáΘÑ¡¿Ñ. é »«ß½Ññ¡Ñ¼ ó맮óÑ Σπ¡¬µ¿¿ read ¿º »α¿¼Ñαá ∩ñα« óÑñÑΓ ßÑí∩,
- ¬á¬ ¿ ó »Ñαó«¼ «íαáΘÑ¡¿¿ ¬ Σπ¡¬µ¿¿, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« τΓÑ¡¿Ñ ¿º Σá⌐½á
- ó ñá¡¡«¼ ß½πτáÑ ¡áτ¿¡áÑΓß∩ ß íá⌐Γá 1044, Γᬠ¬á¬ ¿¼Ñ¡¡« φΓ« º¡áτÑ¡¿Ñ íπñÑΓ
- «í¡áαπªÑ¡« ó »«½Ñ ß¼ÑΘÑ¡¿∩ Γ«⌐ ºá»¿ß¿ Γáí½¿µδ Σá⌐½«ó, ¬«Γ«αá∩ ß««ΓóÑΓßΓóπÑΓ
- π¬áºá¡¡«¼π ñÑß¬α¿»Γ«απ.
- Åα¿¼Ñα »«¬áºδóáÑΓ, ¡á߬«½∞¬« óδú«ñ¡« ñ½∩ ºá»α«ß«ó óó«ñá-óδó«ñá αáí«ΓáΓ∞
- ß ñá¡¡δ¼¿, ¡áτ¿¡áεΘ¿¼¿ß∩ ¡á úαá¡¿µáσ í½«¬«ó Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ¿ ¿¼ÑεΘ¿¼¿ αáº-
- ¼Ñα, ¬αáΓ¡δ⌐ αẼÑαπ í½«¬á. ¥Γ« »«ºó«½∩ÑΓ ∩ñαπ ¿ºíÑúáΓ∞ ñ«»«½¡¿Γѽ∞¡δσ ¿ΓÑ-
- αᵿ⌐ »α¿ óδ»«½¡Ñ¡¿¿ µ¿¬½á ó á½ú«α¿Γ¼Ñ read ¿ óßÑσ óδΓѬáεΘ¿σ »«ß½ÑñßΓó¿⌐,
- ßó∩ºá¡¡δσ ß ñ«»«½¡¿Γѽ∞¡δ¼¿ «íαáΘÑ¡¿∩¼¿ ¬ ¿¡ñѬßπ ó »«¿ß¬áσ ¡«¼Ñαá í½«¬á,
- ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ñá¡¡δÑ, ¿ ß ¬«¡¬παÑ¡µ¿Ñ⌐ ºá ¿ß»«½∞º«óá¡¿Ñ íπΣÑα¡«ú« »π½á.
- ü¿í½¿«ΓѬá ßΓá¡ñáαΓ¡δσ ¼«ñπ½Ñ⌐ óó«ñá-óδó«ñá ß«ºñá¡á Γᬿ¼ «íαẫ¼, τΓ«íδ
- ߬αδΓ∞ «Γ »«½∞º«óáΓѽÑ⌐ αẼÑαδ íπΣÑα«ó ∩ñαá; ÑÑ ¿ß»«½∞º«óá¡¿Ñ »«ºó«½∩ÑΓ ¿º-
- íѪáΓ∞ »«ΓÑα∞ »α«¿ºó«ñ¿Γѽ∞¡«ßΓ¿, »α¿ßπΘ¿σ »α«µÑßßá¼, αáí«ΓáεΘ¿¼ ß ¡Ñí«½∞Φ¿-
- ¼¿ »«αµ¿∩¼¿ ñá¡¡δσ, ¿º-ºá τÑú« ¿σ Σπ¡¬µ¿«¡¿α«óá¡¿Ñ ¡á πα«ó¡Ñ Σá⌐½«ó«⌐ ß¿ßΓÑ-
- ¼δ ¡ÑφΣΣÑ¬Γ¿ó¡« (ß¼. π»α᪡ѡ¿Ñ 5.4).
- éδ»«½¡∩∩ µ¿¬½ τΓÑ¡¿∩, ∩ñα« «»αÑñѽ∩ÑΓ, ∩ó½∩ÑΓß∩ ½¿ Σá⌐½ «íΩÑ¬Γ«¼ τΓÑ¡¿∩
- ß »α«ñó¿ªÑ¡¿Ñ¼: Ñß½¿ »α«µÑßß ßτ¿ΓδóáÑΓ »«ß½Ññ«óáΓѽ∞¡« ñóá í½«¬á, ∩ñα« »αÑñ-
- »«½áúáÑΓ, τΓ« óßÑ «τÑαÑñ¡δÑ «»Ñαᵿ¿ íπñπΓ »α«¿ºó«ñ¿Γ∞ »«ß½Ññ«óáΓѽ∞¡«Ñ τΓÑ-
- ¡¿Ñ, ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ πΓóÑαªñÑ¡« «íαáΓ¡«Ñ. ìá ¬áªñ«¼ ΦáúÑ µ¿¬½á ∩ñ-
- α« ºá»«¼¿¡áÑΓ ¡«¼Ñα ß½ÑñπεΘÑú« ½«ú¿τÑ߬«ú« í½«¬á ó ¬«»¿¿ ¿¡ñѬßá, σαá¡∩ΘÑ⌐ß∩
- ó »á¼∩Γ¿, ¿ ¡á ß½ÑñπεΘѼ ΦáúÑ ßαáó¡¿óáÑΓ ¡«¼Ñα ΓѬπΘÑú« ½«ú¿τÑ߬«ú« í½«¬á ß«
- º¡áτÑ¡¿Ñ¼, ºá»«¼¡Ñ¡¡δ¼ αá¡ÑÑ. àß½¿ φΓ¿ ¡«¼Ñαá αáó¡δ, ∩ñα« óδτ¿ß½∩ÑΓ ¡«¼Ñα
- Σ¿º¿τÑ߬«ú« í½«¬á ñ½∩ τΓÑ¡¿∩ ß »α«ñó¿ªÑ¡¿Ñ¼ ¿ ß«σαá¡∩ÑΓ φΓ« º¡áτÑ¡¿Ñ ó »α«ß-
- Γαá¡ßΓóÑ »α«µÑßßá ñ½∩ ¿ß»«½∞º«óá¡¿∩ ó á½ú«α¿Γ¼Ñ breada. è«¡Ñτ¡« ªÑ, »«¬á
- »α«µÑßß ¡Ñ ßτ¿Γá½ ¬«¡Ñµ í½«¬á, ∩ñα« ¡Ñ ºá»πßΓ¿Γ á½ú«α¿Γ¼ τΓÑ¡¿∩ ß »α«ñó¿ªÑ-
- ¡¿Ñ¼ ñ½∩ ß½ÑñπεΘÑú« í½«¬á.
- ÄíαáΓ¿óΦ¿ß∞ ¬ É¿ßπ¡¬π 4.9, óß»«¼¡¿¼, τΓ« ¡«¼Ñαá ¡Ñ¬«Γ«αδσ í½«¬«ó ó ¿¡-
- ñѬßÑ ¿½¿ ó í½«¬áσ ¬«ßóÑ¡¡«⌐ áñαÑßᵿ¿ ¼«úπΓ ¿¼ÑΓ∞ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ, »πßΓ∞
- ñáªÑ ¡«¼Ñαá »«ß½ÑñπεΘ¿σ í½«¬«ó ¿ ¡Ñ¡π½ÑóδÑ. àß½¿ »α«µÑßß »«»δΓáÑΓß∩ »α«τ¿-
- ΓáΓ∞ ñá¡¡δÑ ¿º Γᬫú« í½«¬á, ∩ñα« óδ»«½¡¿Γ ºá»α«ß, óδñѽ∩∩ »α«¿ºó«½∞¡δ⌐ íπ-
- ΣÑα ó µ¿¬½Ñ read, «τ¿Θá∩ Ñú« ß«ñÑন¼«Ñ ¿ ¬«»¿απ∩ ñá¡¡δÑ ¿º ¡Ñú« »« áñαÑßπ
- »«½∞º«óáΓѽ∩. ¥Γ«Γ ß½πτá⌐ ¡Ñ ¿¼ÑÑΓ ¡¿τÑú« «íΘÑú« ß ΓѼ ß½πτáѼ, ¬«úñá »α«-
- µÑßß «í¡áαπª¿óáÑΓ ¬«¡Ñµ Σá⌐½á, ú«ó«α∩Θ¿⌐ « Γ«¼, τΓ« »«ß½Ñ φΓ«ú« ¼ÑßΓá ºá»¿ß∞
- ¿¡Σ«α¼áµ¿¿ ¡¿¬«úñá ¡Ñ »α«¿ºó«ñ¿½áß∞. Äí¡áαπª¿ó ¬«¡Ñµ Σá⌐½á, ∩ñα« ¡Ñ ó«ºóαá-
-
- 93
-
- ΘáÑΓ »α«µÑßßπ ¡¿¬á¬«⌐ ¿¡Σ«α¼áµ¿¿ (ß¼. π»α᪡ѡ¿Ñ 5.1).
- è«úñá »α«µÑßß óδºδóáÑΓ ß¿ßΓѼ¡πε Σπ¡¬µ¿ε read, ∩ñα« í½«¬¿απÑΓ ¿¡ñÑ¬ß ¡á
- óαѼ∩ óδ»«½¡Ñ¡¿∩ ó맮óá. 黫߽ÑñßΓó¿¿, φëà »α«µÑßß ¼«ªÑΓ »α¿«ßΓá¡«ó¿Γ∞ß∩ ó«
- óαѼ∩ τΓÑ¡¿∩ ¿º íπΣÑαá, áßß«µ¿¿α«óá¡¡«ú« ß ñá¡¡δ¼¿ ¿½¿ ß í½«¬á¼¿ ¬«ßóÑ¡¡«⌐
- áñαÑßᵿ¿ ó ¿¡ñѬßÑ. àß½¿ ÑΘÑ «ñ¡«¼π »α«µÑßßπ ñáΓ∞ 󫺼«ª¡«ßΓ∞ ó¡«ß¿Γ∞ ¿º¼Ñ-
- ¡Ñ¡¿∩ ó Σá⌐½ ó Γ« óαѼ∩, ¬«úñá »Ñαóδ⌐ »α«µÑßß »α¿«ßΓá¡«ó½Ñ¡, Σπ¡¬µ¿∩ read
- ¼«ªÑΓ ó«ºóαáΓ¿Γ∞ ¡Ñß«ú½áß«óá¡¡δÑ ñá¡¡δÑ. ìá»α¿¼Ñα, »α«µÑßß ¼«ªÑΓ ßτ¿ΓáΓ∞ ¿º
- Σá⌐½á ¡Ñ߬«½∞¬« í½«¬«ó; Ñß½¿ «¡ »α¿«ßΓá¡«ó¿½ß∩ ó« óαѼ∩ τΓÑ¡¿∩ »Ñαó«ú« í½«-
- ¬á, á óΓ«α«⌐ »α«µÑßß ß«í¿αá½ß∩ óÑßΓ¿ ºá»¿ß∞ ó ñαπú¿Ñ í½«¬¿, ó«ºóαáΘáѼδÑ
- ñá¡¡δÑ íπñπΓ ß«ñÑαªáΓ∞ ßΓáαδÑ ñá¡¡δÑ ó»ÑαѼÑΦ¬π ß ¡«ó묨. Æá¬¿¼ «íαẫ¼, ¿¡-
- ñÑ¬ß «ßΓáÑΓß∩ ºáí½«¬¿α«óá¡¡δ¼ ¡á óßÑ óαѼ∩ óδ»«½¡Ñ¡¿∩ ó맮óá Σπ¡¬µ¿¿ read
- ñ½∩ Γ«ú«, τΓ«íδ »α«µÑßßδ ¼«ú½¿ ¿¼ÑΓ∞ µÑ½«ßΓ¡«Ñ ó¿ñÑ¡¿Ñ Σá⌐½á, Γ« ÑßΓ∞ ó¿ñÑ-
- ¡¿Ñ Γ«ú« «íαáºá, ¬«Γ«αδ⌐ íδ½ π Σá⌐½á »ÑαÑñ óδº«ó«¼ Σπ¡¬µ¿¿.
- ƒñα« ¼«ªÑΓ óδúαπªáΓ∞ »α«µÑßß, óÑñπΘ¿⌐ τΓÑ¡¿Ñ, ó αѪ¿¼ ºáñáτ¿ ¡á óαѼ∩
- ¼Ñªñπ ñóπ¼∩ ó맮óἿ Σπ¡¬µ¿⌐ ¿ »½á¡¿α«óáΓ∞ ºá»π߬ ñαπú¿σ »α«µÑßß«ó. Æá¬ ¬á¬
- »« «¬«¡τá¡¿¿ óδ»«½¡Ñ¡¿∩ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ ß ¿¡ñѬßá ß¡¿¼áÑΓß∩ í½«¬¿α«ó¬á,
- ¡¿τΓ« ¡Ñ ¼ÑΦáÑΓ ñαπú¿¼ »α«µÑßßá¼ «íαáΘáΓ∞ß∩ ¬ Σá⌐½π ¿ ¿º¼Ñ¡∩Γ∞ Ñú« ß«ñÑন-
- ¼«Ñ. æ« ßΓ«α«¡δ ß¿ßΓѼδ í佫 íδ ¡Ñß»αáóÑñ½¿ó« ñÑαªáΓ∞ ¿¡ñÑ¬ß ºáí½«¬¿α«óá¡¡δ¼
- óßÑ óαѼ∩ «Γ ¼«¼Ñ¡Γá, ¬«úñá »α«µÑßß «Γ¬αδ½ Σá⌐½, ¿ ñ« Γ«ú« ¼«¼Ñ¡Γá, ¬«úñá
- Σá⌐½ íπñÑΓ ºá¬αδΓ φΓ¿¼ »α«µÑßß«¼, »«ß¬«½∞¬π Γ«úñá «ñ¿¡ »α«µÑßß íπñÑΓ ñÑαªáΓ∞
- óßÑ óαѼ∩ Σá⌐½ «Γ¬αδΓδ¼, ΓѼ ßá¼δ¼ ¡Ñ ñáóá∩ ñαπú¿¼ »α«µÑßßἠ󫺼«ª¡«ßΓ¿ «í-
- αáΓ¿Γ∞ß∩ ¬ Σá⌐½π. àß½¿ Σá⌐½ ¿¼ÑÑΓ ¿¼∩ "/etc/ passwd", Γ« ÑßΓ∞ ∩ó½∩ÑΓß∩ Σá⌐-
- ½«¼, ¿ß»«½∞ºπÑ¼δ¼ ó »α«µÑßßÑ αÑú¿ßΓαᵿ¿ ñ½∩ »α«óÑન »«½∞º«óáΓѽ∞߬«ú« »á-
- α«½∩, «ñ¿¡ »«½∞º«óáΓѽ∞ ¼«ªÑΓ π¼δΦ½Ñ¡¡« (¿½¿, 󫺼«ª¡«, ¡Ñπ¼δΦ½Ñ¡¡«) ó«ß»αÑ-
- »∩ΓßΓó«óáΓ∞ αÑú¿ßΓαᵿ¿ ó ß¿ßΓÑ¼Ñ óßÑσ «ßΓá½∞¡δσ »«½∞º«óáΓѽÑ⌐. ùΓ«íδ »αÑ-
- ñ«ΓóαáΓ¿Γ∞ 󫺡¿¬¡«óÑ¡¿Ñ »«ñ«í¡δσ »α«í½Ñ¼, ∩ñα« ß¡¿¼áÑΓ ß ¿¡ñѬßá í½«¬¿α«ó¬π
- »« «¬«¡τá¡¿¿ óδ»«½¡Ñ¡¿∩ ¬áªñ«ú« ó맮óá ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿, ¿ß»«½∞ºπεΘÑ⌐ ¿¡-
- ñѬß. àß½¿ óΓ«α«⌐ »α«µÑßß ó¡ÑßÑΓ ¿º¼Ñ¡Ñ¡¿∩ ó Σá⌐½ ¼Ñªñπ ñóπ¼∩ ó맮óἿ Σπ¡¬-
- µ¿¿ read, »α«¿ºó«ñ¿¼δ¼¿ »Ñαóδ¼ »α«µÑßß«¼, »Ñαóδ⌐ »α«µÑßß ¼«ªÑΓ »α«τ¿ΓáΓ∞
- ¡Ñ»αÑñó¿ñÑ¡¡δÑ ñá¡¡δÑ, «ñ¡á¬« ßΓαπ¬Γπαδ ñá¡¡δσ ∩ñαá ß«σαá¡∩Γ ßó«ε ß«ú½áß«-
- óá¡¡«ßΓ∞.
- ÅαÑñ»«½«ª¿¼, ¬ »α¿¼Ñαπ, τΓ« ∩ñα« óδ»«½¡∩ÑΓ ñóá »α«µÑßßá, ¬«¡¬πα¿απεΘ¿Ñ
-
- ┌────────────────────────────────────────────────────────────┐
- │ #include <fcntl.h> │
- │ /* »α«µÑßß A */ │
- │ main() │
- │ { │
- │ int fd; │
- │ char buf[512]; │
- │ fd = open("/etc/passwd",O_RDONLY); │
- │ read(fd,buf,sizeof(buf)); /* τΓÑ¡¿Ñ1 */ │
- │ read(fd,buf,sizeof(buf)); /* τΓÑ¡¿Ñ2 */ │
- │ } │
- │ │
- │ /* »α«µÑßß B */ │
- │ main() │
- │ { │
- │ int fd,i; │
- │ char buf[512]; │
- │ for (i = 0; i < sizeof(buf); i++) │
- │ buf[i] = 'a'; │
- │ fd = open("/etc/passwd",O_WRONLY); │
- │ write(fd,buf,sizeof(buf)); /* ºá»¿ß∞1 */ │
- │ write(fd,buf,sizeof(buf)); /* ºá»¿ß∞2 */ │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.8. Åα«µÑßßδ, óÑñπΘ¿Ñ τΓÑ¡¿Ñ ¿ ºá»¿ß∞
-
- 94
-
-
-
- ¼Ñªñπ ß«í«⌐ (É¿ßπ¡«¬ 5.8). àß½¿ ñ«»πßΓ¿Γ∞, τΓ« «íá »α«µÑßßá óδ»«½¡∩εΓ «»Ñαá-
- µ¿ε open ñ« Γ«ú«, ¬á¬ ½εí«⌐ ¿º ¡¿σ óδºδóáÑΓ ß¿ßΓѼ¡πε Σπ¡¬µ¿ε read ¿½¿
- write, ∩ñα« ¼«ªÑΓ óδ»«½¡∩Γ∞ Σπ¡¬µ¿¿ τΓÑ¡¿∩ ¿ ºá»¿ß¿ ó ½εí«⌐ ¿º ΦÑßΓ¿ »«ß½Ñ-
- ñ«óáΓѽ∞¡«ßΓÑ⌐: τΓÑ¡¿Ñ1, τΓÑ¡¿Ñ2, ºá»¿ß∞1, ºá»¿ß∞2, ¿½¿ τΓÑ¡¿Ñ1, ºá»¿ß∞1,
- τΓÑ¡¿Ñ2, ºá»¿ß∞2, ¿½¿ τΓÑ¡¿Ñ1, ºá»¿ß∞1, ºá»¿ß∞2, τΓÑ¡¿Ñ2 ¿ Γ.ñ. æ«ßΓáó ¿¡-
- Σ«α¼áµ¿¿, ßτ¿ΓδóáѼ«⌐ »α«µÑßß«¼ A, ºáó¿ß¿Γ «Γ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿, ó ¬«Γ«α«⌐
- ß¿ßΓѼá óδ»«½¡∩ÑΓ Σπ¡¬µ¿¿, óδºδóáѼδÑ ñóπ¼∩ »α«µÑßßἿ; ß¿ßΓÑ¼á ¡Ñ úáαá¡Γ¿-
- απÑΓ, τΓ« ñá¡¡δÑ ó Σá⌐½Ñ «ßΓá¡πΓß∩ Γᬿ¼¿ ªÑ, ¬á¬¿¼¿ «¡¿ í뫨 »«ß½Ñ «Γ¬αδΓ¿∩
- Σá⌐½á. êß»«½∞º«óá¡¿Ñ ó«º¼«ª¡«ßΓ¿ ºáσóáΓá Σá⌐½á ¿ ºá»¿ßÑ⌐ (αáºñѽ 5.4) »«ºó«-
- ½∩ÑΓ »α«µÑßßπ úáαá¡Γ¿α«óáΓ∞ ß«σαá¡Ñ¡¿Ñ µÑ½«ßΓ¡«ßΓ¿ Σá⌐½á »«ß½Ñ Ñú« «Γ¬αδΓ¿∩.
-
- ìᬫ¡Ñµ, »α«úαá¼¼á ¡á É¿ßπ¡¬Ñ 5.9 »«¬áºδóáÑΓ, ¬á¬ »α«µÑßß ¼«ªÑΓ «Γ¬αδ-
- óáΓ∞ Σá⌐½ í«½ÑÑ «ñ¡«ú« αáºá ¿ τ¿ΓáΓ∞ ¿º ¡Ñú«, ¿ß»«½∞ºπ∩ αạδÑ Σá⌐½«óδÑ ñÑß-
- ¬α¿»Γ«αδ. ƒñα« αáí«ΓáÑΓ ß« º¡áτÑ¡¿∩¼¿ ß¼ÑΘÑ¡¿⌐ ó Γáí½¿µÑ Σá⌐½«ó, áßß«µ¿¿α«-
- óá¡¡δ¼¿ ß ñóπ¼∩ Σá⌐½«ó묨 ñÑß¬α¿»Γ«αἿ, ¡Ñºáó¿ß¿¼«, ¿ »«φΓ«¼π ¼áßß¿óδ buf1
- ¿ buf2 íπñπΓ »« ºáóÑαΦÑ¡¿¿ óδ»«½¡Ñ¡¿∩ »α«µÑßßá ¿ñÑ¡Γ¿τ¡δ ñαπú ñαπúπ »α¿ πß-
- ½«ó¿¿, τΓ« ¡¿ «ñ¿¡ »α«µÑßß ó φΓ« óαѼ∩ ¡Ñ »α«¿ºó«ñ¿½ ºá»¿ß∞ ó Σá⌐½
- "/etc/passwd".
-
-
- E5.3 WRITEF
-
- æ¿¡Γá¬ß¿ß ó맮óá ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ write (»¿ßáΓ∞):
- number = write(fd,buffer,count);
-
- úñÑ »ÑαѼѡ¡δÑ fd, buffer, count ¿ number ¿¼Ñεà ëà ªÑ ß¼δß½, τΓ« ¿ ñ½∩ óδ-
- º«óá ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ read. ǽú«α¿Γ¼ ºá»¿ß¿ ó «íδτ¡δ⌐ Σá⌐½ »«σ«ª ¡á á½ú«-
- α¿Γ¼ τΓÑ¡¿∩ ¿º «íδτ¡«ú« Σá⌐½á. Äñ¡á¬«, Ñß½¿ ó Σá⌐½Ñ «ΓßπΓßΓóπÑΓ í½«¬, ß««Γ-
- óÑΓßΓóπεΘ¿⌐ ß¼ÑΘÑ¡¿ε ó íá⌐Γáσ ñ« ¼ÑßΓá, ¬πñá ñ«½ª¡á »α«¿ºó«ñ¿Γ∞ß∩ ºá»¿ß∞,
- ∩ñα« óδñѽ∩ÑΓ í½«¬, ¿ß»«½∞ºπ∩ á½ú«α¿Γ¼ alloc, ¿ »α¿ßóá¿óáÑΓ Ñ¼π ¡«¼Ñα ó ß«-
- «ΓóÑΓßΓó¿¿ ß Γ«τ¡δ¼ π¬áºá¡¿Ñ¼ ¼ÑßΓá ó Γáí½¿µÑ ß«ñÑন¼«ú« ¿¡ñѬßá. àß½¿ ß¼Ñ-
- ΘÑ¡¿Ñ ó íá⌐Γáσ ß«ó»áñáÑΓ ß« ß¼ÑΘÑ¡¿Ñ¼ ñ½∩ í½«¬á ¬«ßóÑ¡¡«⌐ áñαÑßᵿ¿, ∩ñαπ,
- 󫺼«ª¡«, »α¿ñÑΓß∩ óδñѽ¿Γ∞ ¡Ñ߬«½∞¬« í½«¬«ó ñ½∩ ¿ß»«½∞º«óá¡¿∩ ¿σ ó ¬áτÑßΓóÑ
- í½«¬«ó ¬«ßóÑ¡¡«⌐ áñαÑßᵿ¿ ¿ ¿¡Σ«α¼áµ¿-
-
- ┌────────────────────────────────────────────────────────────┐
- │ #include <fcntl.h> │
- │ main() │
- │ { │
- │ int fd1,fd2; │
- │ char buf1[512],buf2[512]; │
- │ │
- │ fd1 = open("/etc/passwd",O_RDONLY); │
- │ fd2 = open("/etc/passwd",O_RDONLY); │
- │ read(fd1,buf1,sizeof(buf1)); │
- │ read(fd2,buf2,sizeof(buf2)); │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.9. ùΓÑ¡¿Ñ ¿º Σá⌐½á ß ¿ß»«½∞º«ó᡿Ѽ ñóπσ ñÑß¬α¿»Γ«α«ó
-
-
- «¡¡δσ í½«¬«ó. ê¡ñÑ¬ß í½«¬¿απÑΓß∩ ¡á óßÑ óαѼ∩ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ write, Γá¬
- ¬á¬ ∩ñα« ¼«ªÑΓ ¿º¼Ñ¡¿Γ∞ ¿¡ñѬß, óδñѽ∩∩ ¡«óδÑ í½«¬¿; αáºαÑΦÑ¡¿Ñ ñαπú¿¼ »α«-
- µÑßßá¼ «íαáΘáΓ∞ß∩ ¬ Σá⌐½π ¼«ªÑΓ αáºαπΦ¿Γ∞ ¿¡ñѬß, Ñß½¿ ¡Ñ߬«½∞¬« »α«µÑßß«ó
- óδñѽ∩εΓ í½«¬¿ «ñ¡«óαѼѡ¡«, ¿ß»«½∞ºπ∩ «ñ¡¿ ¿ ΓÑ ªÑ º¡áτÑ¡¿∩ ß¼ÑΘÑ¡¿⌐. è«úñá
- ºá»¿ß∞ ºáóÑαΦáÑΓß∩, ∩ñα« ¬«ααÑ¬Γ¿απÑΓ αẼÑα Σá⌐½á ó ¿¡ñѬßÑ, Ñß½¿ Σá⌐½ πóÑ-
-
- 95
-
- ½¿τ¿½ß∩ ó αẼÑαÑ.
- ÅαÑñ»«½«ª¿¼, ¬ »α¿¼Ñαπ, τΓ« »α«µÑßß ºá»¿ßδóáÑΓ ó Σá⌐½ íá⌐Γ ß ¡«¼Ñα«¼
- 10240, ¡á¿í«½∞Φ¿¼ ¡«¼Ñα«¼ ßαÑñ¿ πªÑ ºá»¿ßá¡¡δσ ó Σá⌐½Ñ. ÄíαáΓ¿óΦ¿ß∞ ¬ íá⌐Γπ
- ó Σá⌐½Ñ »« á½ú«α¿Γ¼π bmap, ∩ñα« «í¡áαπª¿Γ, τΓ« ó Σá⌐½Ñ «ΓßπΓßΓóπÑΓ ¡Ñ Γ«½∞¬«
- ß««ΓóÑΓßΓóπεΘ¿⌐ φΓ«¼π íá⌐Γπ í½«¬, ¡« Γá¬ªÑ ¿ ¡πª¡δ⌐ í½«¬ ¬«ßóÑ¡¡«⌐ áñαÑßá-
- µ¿¿. ƒñα« ¡áº¡áτáÑΓ ñ¿ß¬«óδ⌐ í½«¬ ó ¬áτÑßΓóÑ í½«¬á ¬«ßóÑ¡¡«⌐ áñαÑßᵿ¿ ¿ ºá-
- »¿ßδóáÑΓ ¡«¼Ñα í½«¬á ó ¬«»¿¿ ¿¡ñѬßá, σαá¡∩ΘÑ⌐ß∩ ó »á¼∩Γ¿. çáΓѼ «¡« óδñѽ∩-
- ÑΓ ñ¿ß¬«óδ⌐ í½«¬ »«ñ ñá¡¡δÑ ¿ ºá»¿ßδóáÑΓ Ñú« ¡«¼Ñα ó »Ñαóπε »«º¿µ¿ε ó¡«ó∞
- ß«ºñá¡¡«ú« í½«¬á ¬«ßóÑ¡¡«⌐ áñαÑßᵿ¿.
- Æá¬ ªÑ, ¬á¬ ó á½ú«α¿Γ¼Ñ read, ∩ñα« óσ«ñ¿Γ ó µ¿¬½, ºá»¿ßδóá∩ ¡á ñ¿ß¬ »«
- «ñ¡«¼π í½«¬π ¡á ¬áªñ«⌐ ¿ΓÑαᵿ¿. Åα¿ φΓ«¼ ¡á ¬áªñ«⌐ ¿ΓÑαᵿ¿ ∩ñα« «»αÑñѽ∩-
- ÑΓ, íπñÑΓ ½¿ »α«¿ºó«ñ¿Γ∞ß∩ ºá»¿ß∞ µÑ½«ú« í½«¬á ¿½¿ Γ«½∞¬« Ñú« τáßΓ¿. àß½¿
- ºá»¿ßδóáÑΓß∩ Γ«½∞¬« τáßΓ∞ í½«¬á, ∩ñα« ó »Ñαóπε «τÑαÑñ∞ ßτ¿ΓδóáÑΓ í½«¬ ß ñ¿ß-
- ¬á ñ½∩ Γ«ú«, τΓ«íδ ¡Ñ ºáΓÑαÑΓ∞ ΓÑ τáßΓ¿, ¬«Γ«αδÑ «ßΓ὿ß∞ íѺ ¿º¼Ñ¡Ñ¡¿⌐, á
- Ñß½¿ ºá»¿ßδóáÑΓß∩ µÑ½δ⌐ í½«¬, ∩ñαπ ¡Ñ ¡πª¡« τ¿ΓáΓ∞ óÑß∞ í½«¬, Γᬠ¬á¬ ó ½ε-
- í«¼ ß½πτáÑ «¡« ºáΓαÑΓ »αÑñδñπΘÑÑ ß«ñÑন¼«Ñ í½«¬á. çỿß∞ «ßπΘÑßΓó½∩ÑΓß∩
- »«í½«τ¡«, «ñ¡á¬« ∩ñα« ¿ß»«½∞ºπÑΓ «Γ½«ªÑ¡¡πε ºá»¿ß∞ (αáºñѽ 3.4) ñá¡¡δσ ¡á
- ñ¿ß¬, ºá»«¼¿¡á∩ ¿σ ó ¬ÑΦÑ ¡á ß½πτá⌐, Ñß½¿ «¡¿ »«¡áñ«í∩Γß∩ ó߬«αÑ ñαπú«¼π
- »α«µÑßßπ ñ½∩ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿, á Γá¬ªÑ ñ½∩ Γ«ú«, τΓ«íδ ¿ºíѪáΓ∞ ½¿Φ¡¿σ «í-
- αáΘÑ¡¿⌐ ¬ ñ¿ß¬π. ÄΓ½«ªÑ¡¡á∩ ºá»¿ß∞, óÑα«∩Γ¡«, ¡á¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡á ñ½∩ ¬á¡á-
- ½«ó, Γᬠ¬á¬ ñαπú«⌐ »α«µÑßß τ¿ΓáÑΓ ¬á¡á½ ¿ πñá½∩ÑΓ ¿º ¡Ñú« ñá¡¡δÑ (αáºñѽ
- 5.12). ì« ñáªÑ ñ½∩ «íδτ¡δσ Σá⌐½«ó «Γ½«ªÑ¡¡á∩ ºá»¿ß∞ φΣΣÑ¬Γ¿ó¡á, Ñß½¿ Σá⌐½
- ß«ºñáÑΓß∩ óαѼѡ¡« ¿ ó߬«αÑ íπñÑΓ »α«τ¿Γá¡. ìá»α¿¼Ñα, ¼¡«ú¿Ñ »α«úαá¼¼δ, Γá-
- ¬¿Ñ ¬á¬ αÑñá¬Γ«αδ ¿ φ½Ñ¬Γα«¡¡á∩ »«τΓá, ß«ºñáεΓ óαѼѡ¡δÑ Σá⌐½δ ó ¬áΓὫúÑ
- "/tmp" ¿ íδßΓα« πñá½∩εΓ ¿σ. êß»«½∞º«óá¡¿Ñ «Γ½«ªÑ¡¡«⌐ ºá»¿ß¿ ¼«ªÑΓ ß«¬αáΓ¿Γ∞
- ¬«½¿τÑßΓó« «íαáΘÑ¡¿⌐ ¬ ñ¿ß¬π ñ½∩ ºá»¿ß¿ ó« óαѼѡ¡δÑ Σá⌐½δ.
-
-
- E5.4 çÇòéÇÆ öÇëïÇ ê çÇÅêæêF
-
- é »Ñαó«⌐ óÑαß¿¿ ß¿ßΓѼδ UNIX, αáºαáí«Γá¡¡«⌐ Æ«¼»ß«¡«¼ ¿ É¿τ¿, «ΓßπΓßΓó«-
- óá½ ó¡πΓαÑ¡¡¿⌐ ¼Ñσá¡¿º¼, ß »«¼«Θ∞ε ¬«Γ«α«ú« »α«µÑßßπ ¼«ú íδ íδΓ∞ «íÑß»ÑτÑ¡
- ¿ß¬½ετ¿Γѽ∞¡δ⌐ ñ«ßΓπ» ¬ Σá⌐½π. îÑσá¡¿º¼ ºáσóáΓá íδ½ »α¿º¡á¡ ¿º½¿Φ¡¿¼, »«ß-
- ¬«½∞¬π, ¬á¬ «Γ¼ÑτáÑΓ É¿τ¿, "¼δ ¡Ñ ¿¼ÑѼ ñѽá ß í«½∞Φ¿¼¿ íáºá¼¿ ñá¡¡δσ, ß«ß-
- Γ«∩Θ¿¼¿ ¿º «ñ¡«ú« Σá⌐½á, ¬«Γ«αδÑ »«ññÑনóáεΓß∩ ¡Ñºáó¿ß¿¼δ¼¿ »α«µÑßßἿ"
- (ß¼. [Ritchie 81]). ä½∩ Γ«ú«, τΓ«íδ »«óδß¿Γ∞ »α¿ó½Ñ¬áΓѽ∞¡«ßΓ∞ ß¿ßΓѼδ UNIX
- ñ½∩ ¬«¼¼ÑατÑ߬¿σ »«½∞º«óáΓѽÑ⌐, αáí«ΓáεΘ¿σ ß íáºá¼¿ ñá¡¡δσ, ó óÑαß¿ε V ß¿ß-
- ΓÑ¼δ ¡δ¡Ñ ó¬½ετÑ¡δ ¼Ñσá¡¿º¼δ ºáσóáΓá Σá⌐½á ¿ ºá»¿ß¿. çáσóáΓ Σá⌐½á - φΓ«
- ßαÑñßΓó«, »«ºó«½∩εΘÑÑ ºá»αÑΓ¿Γ∞ ñαπú¿¼ »α«µÑßßá¼ »α«¿ºó«ñ¿Γ∞ τΓÑ¡¿Ñ ¿½¿ ºá-
- »¿ß∞ ½εí«⌐ τáßΓ¿ Σá⌐½á, á ºáσóáΓ ºá»¿ß¿ - φΓ« ßαÑñßΓó«, »«ºó«½∩εΘÑÑ ºá»αÑ-
- Γ¿Γ∞ ñαπú¿¼ »α«µÑßßá¼ »α«¿ºó«ñ¿Γ∞ óó«ñ-óδó«ñ π¬áºá¡¡δσ ºá»¿ßÑ⌐ (τáßΓÑ⌐ Σá⌐½á
- ¼Ñªñπ π¬áºá¡¡δ¼¿ ß¼ÑΘÑ¡¿∩¼¿). é π»α᪡ѡ¿¿ 5.9 αáßß¼áΓα¿óáÑΓß∩ αÑ὿ºáµ¿∩
- ¼Ñσá¡¿º¼á ºáσóáΓá Σá⌐½á ¿ ºá»¿ß¿.
-
-
- E5.5 ôèÇçÇìêà îàæÆÇ é öÇëïà, âäà üôäàÆ é¢ÅÄïìƒÆ£æƒ ééÄä-é¢éÄä - LSEEKF
-
- Äíδτ¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐ read ¿ write «íÑß»Ñτ¿óáÑΓ »«ß½Ñ-
- ñ«óáΓѽ∞¡δ⌐ ñ«ßΓπ» ¬ Σá⌐½π, «ñ¡á¬« »α«µÑßßδ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ ó맮ó ß¿ßΓѼ-
- ¡«⌐ Σπ¡¬µ¿¿ lseek ñ½∩ π¬áºá¡¿∩ ¼ÑßΓá ó Σá⌐½Ñ, úñÑ íπñÑΓ »α«¿ºó«ñ¿Γ∞ß∩
- óó«ñ-óδó«ñ, ¿ «ßπΘÑßΓó½Ñ¡¿∩ »α«¿ºó«½∞¡«ú« ñ«ßΓπ»á ¬ Σá⌐½π. æ¿¡Γá¬ß¿ß ó맮óá
- ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿:
-
- position = lseek(fd,offset,reference);
-
- úñÑ fd - ñÑß¬α¿»Γ«α Σá⌐½á, ¿ñÑ¡Γ¿Σ¿µ¿απεΘ¿⌐ Σá⌐½, offset - ß¼ÑΘÑ¡¿Ñ ó íá⌐-
- Γáσ, á reference π¬áºδóáÑΓ, ∩ó½∩ÑΓß∩ ½¿ º¡áτÑ¡¿Ñ offset ß¼ÑΘÑ¡¿Ñ¼ «Γ ¡áτá½á
- Σá⌐½á, ß¼ÑΘÑ¡¿Ñ¼ «Γ ΓѬπΘÑ⌐ »«º¿µ¿¿ óó«ñá-óδó«ñá ¿½¿ ß¼ÑΘÑ¡¿Ñ¼ «Γ ¬«¡µá Σá⌐-
- ½á. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ, position, ∩ó½∩ÑΓß∩ ß¼ÑΘÑ¡¿Ñ¼ ó íá⌐Γáσ ñ« ¼ÑßΓá,
-
- 96
-
- úñÑ íπñÑΓ ¡áτ¿¡áΓ∞ß∩ ß½ÑñπεΘá∩ «»Ñαᵿ∩ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿. ìá»α¿¼Ñα, ó »α«ú-
- αá¼¼Ñ, »α¿óÑñÑ¡¡«⌐ ¡á É¿ßπ¡¬Ñ 5.10, »α«µÑßß «Γ¬αδóáÑΓ Σá⌐½, ßτ¿ΓδóáÑΓ íá⌐Γ,
- á ºáΓѼ óδºδóáÑΓ Σπ¡¬µ¿ε lseek, τΓ«íδ ºá¼Ñ¡¿Γ∞ º¡áτÑ¡¿Ñ »«½∩ ß¼ÑΘÑ¡¿∩ ó Γáí-
- ½¿µÑ Σá⌐½«ó óѽ¿τ¿¡«⌐, αáó¡«⌐ 1023 (ß »ÑαѼѡ¡«⌐ reference, ¿¼ÑεΘÑ⌐ º¡áτÑ¡¿Ñ
- 1), ¿ óδ»«½¡∩ÑΓ µ¿¬½. Æá¬¿¼ «íαẫ¼, »α«úαá¼¼á ßτ¿ΓδóáÑΓ ¬áªñδ⌐ 1024-⌐ íá⌐Γ
- Σá⌐½á. àß½¿ reference ¿¼ÑÑΓ º¡áτÑ¡¿Ñ 0, ∩ñα« «ßπΘÑßΓó½∩ÑΓ »«¿ß¬ «Γ ¡áτá½á
- Σá⌐½á, á Ñß½¿ 2, ∩ñα« óÑñÑΓ »«¿ß¬ «Γ ¬«¡µá Σá⌐½á. öπ¡¬µ¿∩ lseek ¡¿τÑú« ¡Ñ
- ñ«½ª¡á ñѽáΓ∞, ¬α«¼Ñ «»Ñαᵿ¿ »«¿ß¬á, ¬«Γ«αá∩ »«º¿µ¿«¡¿απÑΓ ú«½«ó¬π τΓÑ-
- ¡¿∩-ºá»¿ß¿ ¡á π¬áºá¡¡δ⌐ ñ¿ß¬«óδ⌐ ßÑ¬Γ«α. ä½∩ Γ«ú«, τΓ«íδ óδ»«½¡¿Γ∞ Σπ¡¬µ¿ε
- lseek, ∩ñα« »α«ßΓ« óδí¿αáÑΓ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ¿º Γáí½¿µδ Σá⌐½«ó; ó »«ß½Ññπε-
- Θ¿σ ó맮óáσ Σπ¡¬µ¿⌐ read ¿ write ß¼ÑΘÑ¡¿Ñ ¿º Γáí½¿µδ Σá⌐½«ó ¿ß»«½∞ºπÑΓß∩ ó
- ¬áτÑßΓóÑ ¡áτá½∞¡«ú« ß¼ÑΘÑ¡¿∩.
-
-
- E5.6 CLOSEF
-
- Åα«µÑßß ºá¬αδóáÑΓ «Γ¬αδΓδ⌐ Σá⌐½, ¬«úñá »α«µÑßßπ í«½∞ΦÑ ¡Ñ ¡πª¡« «íαá-
- ΘáΓ∞ß∩ ¬ ¡Ñ¼π. æ¿¡Γá¬ß¿ß ó맮óá ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ close (ºá¬αδΓ∞):
-
- ┌────────────────────────────────────────────────────────┐
- │ #include <fcntl.h> │
- │ main(argc,argv) │
- │ int argc; │
- │ char *argv[]; │
- │ { │
- │ int fd,skval; │
- │ char c; │
- │ │
- │ if(argc != 2) │
- │ exit(); │
- │ fd = open(argv[1],O_RDONLY); │
- │ if (fd == -1) │
- │ exit(); │
- │ while ((skval = read(fd,&c,1)) == 1) │
- │ { │
- │ printf("char %c\n",c); │
- │ skval = lseek(fd,1023L,1); │
- │ printf("new seek val %d\n",skval); │
- │ } │
- │ } │
- └────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.10. Åα«úαá¼¼á, ß«ñÑαªáΘá∩ ó맮ó ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ lseek
-
-
- close(fd);
- úñÑ fd - ñÑß¬α¿»Γ«α «Γ¬αδΓ«ú« Σá⌐½á. ƒñα« óδ»«½¡∩ÑΓ «»Ñαáµ¿ε ºá¬αδΓ¿∩, ¿ß-
- »«½∞ºπ∩ ñÑß¬α¿»Γ«α Σá⌐½á ¿ ¿¡Σ«α¼áµ¿ε ¿º ß««ΓóÑΓßΓóπεΘ¿σ ºá»¿ßÑ⌐ ó Γáí½¿µÑ
- Σá⌐½«ó ¿ Γáí½¿µÑ ¿¡ñѬ߫ó. àß½¿ ßτÑΓτ¿¬ ßß佫¬ ó ºá»¿ß¿ Γáí½¿µδ Σá⌐½«ó ¿¼ÑÑΓ
- º¡áτÑ¡¿Ñ, í«½∞ΦÑÑ, τѼ 1, ó ßó∩º¿ ß ΓѼ, τΓ« í뫨 «íαáΘÑ¡¿∩ ¬ Σπ¡¬µ¿∩¼ dup
- ¿½¿ fork, Γ« φΓ« «º¡áτáÑΓ, τΓ« ¡á ºá»¿ß∞ ó Γáí½¿µÑ Σá⌐½«ó ñѽáεΓ ßß佬π ñαπ-
- ú¿Ñ »«½∞º«óáΓѽ∞߬¿Ñ ñÑß¬α¿»Γ«αδ, τΓ« ¼δ πó¿ñ¿¼ ñá½ÑÑ; ∩ñα« π¼Ñ¡∞ΦáÑΓ º¡áτÑ-
- ¡¿Ñ ßτÑΓτ¿¬á ¿ «»Ñαᵿ∩ ºá¬αδΓ¿∩ ºáóÑαΦáÑΓß∩. àß½¿ ßτÑΓτ¿¬ ßß佫¬ ó Γáí½¿µÑ
- Σá⌐½«ó ¿¼ÑÑΓ º¡áτÑ¡¿Ñ, αáó¡«Ñ 1, ∩ñα« «ßó«í«ªñáÑΓ ºá»¿ß∞ ó Γáí½¿µÑ ¿ ¿¡ñѬß
- ó »á¼∩Γ¿, αá¡ÑÑ óδñѽѡ¡δ⌐ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿Ñ⌐ open (á½ú«α¿Γ¼ iput). àß½¿
- ñαπú¿Ñ »α«µÑßßδ óßÑ ÑΘÑ ßßδ½áεΓß∩ ¡á ¿¡ñѬß, ∩ñα« π¼Ñ¡∞ΦáÑΓ º¡áτÑ¡¿Ñ ßτÑΓτ¿-
- ¬á ßß佫¬ ¡á ¿¡ñѬß, ¡« «ßΓáó½∩ÑΓ ¿¡ñÑ¬ß »α«µÑßßá¼; ó »α«Γ¿ó¡«¼ ß½πτáÑ ¿¡-
- ñÑ¬ß «ßó«í«ªñáÑΓß∩ ñ½∩ »ÑαѡạáτÑ¡¿∩, Γᬠ¬á¬ Ñú« ßτÑΓτ¿¬ ßß佫¬ ß«ñÑনΓ
- 0. è«úñá óδ»«½¡Ñ¡¿Ñ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ close ºáóÑαΦáÑΓß∩, ºá»¿ß∞ ó Γáí½¿µÑ
-
- 97
-
- »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½á ßΓá¡«ó¿Γß∩ »πßΓ«⌐. Å«»δΓ¬¿ »α«µÑßßá ¿ß-
- »«½∞º«óáΓ∞ ñá¡¡δ⌐ ñÑß¬α¿»Γ«α ºá¬á¡τ¿óáεΓß∩ «Φ¿í¬«⌐ ñ« ΓÑσ »«α, »«¬á ñÑß¬α¿»-
- Γ«α ¡Ñ íπñÑΓ »ÑαѡạáτÑ¡ ñαπú«¼π Σá⌐½π ó αѺπ½∞ΓáΓÑ óδ»«½¡Ñ¡¿∩ ñαπú«⌐ ß¿ß-
- ΓѼ¡«⌐ Σπ¡¬µ¿¿. è«úñá »α«µÑßß ºáóÑαΦáÑΓß∩, ∩ñα« »α«óÑα∩ÑΓ ¡á½¿τ¿Ñ á¬Γ¿ó¡δσ
- »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½á, »α¿¡áñ½ÑªáóΦ¿σ »α«µÑßßπ, ¿ ºá¬αδóáÑΓ
- ¬áªñδ⌐ ¿º ¡¿σ. Æá¬¿¼ «íαẫ¼, ¡¿ «ñ¿¡ »α«µÑßß ¡Ñ ¼«ªÑΓ «ßΓáó¿Γ∞ Σá⌐½ «Γ¬αδ-
- Γδ¼ »«ß½Ñ ßó«Ñú« ºáóÑαΦÑ¡¿∩.
- ìá É¿ßπ¡¬Ñ 5.11, ¡á»α¿¼Ñα, »«¬áºá¡δ ºá»¿ß¿ ¿º Γáí½¿µ, »α¿óÑñÑ¡¡δσ ¡á É¿-
- ßπ¡¬Ñ 5.4, »«ß½Ñ Γ«ú«, ¬á¬ óΓ«α«⌐ »α«µÑßß ºá¬αδóáÑΓ ß««ΓóÑΓßΓóπεΘ¿Ñ ¿¼ Σá⌐-
- ½δ. çỿ߿, ß««ΓóÑΓßΓóπεΘ¿Ñ ñÑß¬α¿»Γ«αá¼ 3 ¿ 4 ó Γáí½¿µÑ »«½∞º«óáΓѽ∞߬¿σ
-
- »«½∞º«óáΓѽ∞߬¿Ñ ñÑß¬α¿»-
- Γ«αδ Σá⌐½á Γáí½¿µá Σá⌐½«ó Γáí½¿µá ¿¡ñѬ߫ó
- ┌─────────┐ ┌────────────┐ ┌──────────────┐
- 0│ │ │ │ │ ∙ │
- ├─────────┤ │ │ │ ∙ │
- 1│ │ │ │ │ ∙ │
- ├─────────┤ ├────────────┤ │ ∙ │
- 2│ │ │ ∙ │ │ ∙ │
- ├─────────┤ │ ∙ │ │ ∙ │
- 3│ ────┼────┐ │ ∙ │ │ ∙ │
- ├─────────┤ │ │ ∙ │ ├──────────────┤
- 4│ ────┼───┐│ │ ∙ │ ┌────>│ ßτÑΓ- │
- ├─────────┤ ││ │ ∙ │ │ │ τ¿¬ (/etc/ │
- 5│ ────┼──┐││ ├────────────┤ │ ┌──>│ 2 passwd)│
- ├─────────┤ │││ │ ßτÑΓ- │ │ │ ├──────────────┤
- │ ∙ │ ││└──>│ τ¿¬ ┼──┘ │ │ ∙ │
- │ ∙ │ ││ │ 1 │ │ │ ∙ │
- │ ∙ │ ││ ├────────────┤ │ │ ∙ │
- └─────────┘ ││ │ ∙ │ │ │ ∙ │
- ││ │ ∙ │ │ │ ∙ │
- ┌─────────┐ ││ │ ∙ │ │ │ ∙ │
- 0│ │ ││ ├────────────┤ │ │ ∙ │
- ├─────────┤ ││ │ ßτÑΓ- │ │ │ ∙ │
- 1│ │ │└───>│ τ¿¬ ┼────│┐ │ ∙ │
- ├─────────┤ │ │ 1 │ ││ │ ∙ │
- 2│ │ │ ├────────────┤ ││ │ ∙ │
- ├─────────┤ │ │ ∙ │ ││ ├──────────────┤
- 3│ NULL │ │ │ ∙ │ ││ │ ßτÑΓ- │
- ├─────────┤ │ │ ∙ │ │└─>│ τ¿¬ (local)│
- 4│ NULL │ │ │ ∙ │ │ │ 1 │
- ├─────────┤ │ │ ∙ │ │ ├──────────────┤
- 5│ │ │ │ ∙ │ │ │ ∙ │
- ├─────────┤ │ ├────────────┤ │ │ ∙ │
- │ ∙ │ │ │ ßτÑΓτ¿¬ 0 │ │ │ ∙ │
- └─────────┘ │ ├────────────┤ │ │ ∙ │
- │ │ ∙ │ │ ├──────────────┤
- │ │ ∙ │ │ │ ßτÑΓ- │
- │ ├────────────┤ │ │ τ¿¬ (private)│
- │ │ ßτÑΓτ¿¬ 1 │ │ │ 0 │
- └────>│ ┼────┘ ├──────────────┤
- ├────────────┤ │ ∙ │
- │ ∙ │ └──────────────┘
- │ ∙ │
- ├────────────┤
- │ ßτÑΓτ¿¬ 0 │
- └────────────┘
-
- É¿ßπ¡«¬ 5.11. Æáí½¿µδ »«ß½Ñ ºá¬αδΓ¿∩ Σá⌐½á
-
- 98
-
-
-
- ñÑß¬α¿»Γ«α«ó Σá⌐½«ó, »πßΓδ. æτÑΓτ¿¬¿ ó ºá»¿ß∩σ Γáí½¿µδ Σá⌐½«ó ΓÑ»Ñα∞ ¿¼ÑεΓ
- º¡áτÑ¡¿Ñ 0, á ßἿ ºá»¿ß¿ »πßΓδ. æτÑΓτ¿¬¿ ßß佫¬ ¡á Σá⌐½δ "/etc/passwd" ¿
- "private" ó ¿¡ñѬßáσ Γá¬ªÑ π¼Ñ¡∞Φ¿½¿ß∞. ê¡ñÑ¬ß ñ½∩ Σá⌐½á "private" ¡áσ«ñ¿Γß∩
- ó ß»¿ß¬Ñ ßó«í«ñ¡δσ ¿¡ñѬ߫ó, »«ß¬«½∞¬π ßτÑΓτ¿¬ ßß佫¬ ¡á ¡Ñú« αáóÑ¡ 0, ¡«
- ºá»¿ß∞ « ¡Ñ¼ ¡Ñ »πßΓá. àß½¿ ÑΘÑ ¬á¬«⌐-¡¿íπñ∞ »α«µÑßß
- «íαáΓ¿Γß∩ ¬ Σá⌐½π "private", »«¬á ¿¡ñÑ¬ß ÑΘÑ ¡áσ«ñ¿Γß∩ ó ß»¿ß¬Ñ ßó«í«ñ¡δσ
- ¿¡ñѬ߫ó, ∩ñα« ó«ßΓαÑíπÑΓ ¿¡ñÑ¬ß «íαáΓ¡«, ¬á¬ »«¬áºá¡« ó αáºñÑ½Ñ 4.1.2.
-
-
- E5.7 æÄçäÇìêà öÇëïÇF
-
- æ¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ open ñáÑΓ »α«µÑßßπ ñ«ßΓπ» ¬ ßπΘÑßΓóπεΘѼπ Σá⌐½π, á
- ß¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ creat ß«ºñáÑΓ ó ß¿ßΓÑ¼Ñ ¡«óδ⌐ Σá⌐½. æ¿¡Γá¬ß¿ß ó맮óá ß¿ß-
- ΓѼ¡«⌐ Σπ¡¬µ¿¿ creat:
-
- fd = creat(pathname,modes);
-
- úñÑ »ÑαѼѡ¡δÑ pathname, modes ¿ fd ¿¼Ñεà ëà ªÑ ß¼δß½, τΓ« ¿ ó ß¿ßΓѼ¡«⌐
- Σπ¡¬µ¿¿ open. àß½¿ »αѪñÑ Γᬫú« Σá⌐½á ¡Ñ ßπΘÑßΓó«óὫ, ∩ñα« ß«ºñáÑΓ ¡«óδ⌐
- Σá⌐½ ß π¬áºá¡¡δ¼ ¿¼Ñ¡Ñ¼ ¿ π¬áºá¡¡δ¼¿ »αáóἿ ñ«ßΓπ»á ¬ ¡Ñ¼π; Ñß½¿ ªÑ Γᬫ⌐
- Σá⌐½ πªÑ ßπΘÑßΓó«óá½, ∩ñα« πßѬáÑΓ Σá⌐½ («ßó«í«ªñáÑΓ óßÑ ßπΘÑßΓóπεΘ¿Ñ í½«¬¿
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ creat │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ¿¼∩ Σá⌐½á │
- │ πßΓá¡«ó¬¿ »αáó ñ«ßΓπ»á ¬ Σá⌐½π │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ñÑß¬α¿»Γ«α Σá⌐½á │
- │ { │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß ñ½∩ ñá¡¡«ú« ¿¼Ñ¡¿ Σá⌐½á (á½ú«α¿Γ¼ namei);│
- │ Ñß½¿ (Σá⌐½ πªÑ ßπΘÑßΓóπÑΓ) │
- │ { │
- │ Ñß½¿ (ñ«ßΓπ» ¡Ñ αáºαÑΦÑ¡) │
- │ { │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ iput); │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ } │
- │ } │
- │ ó »α«Γ¿ó¡«¼ ß½πτáÑ /* Σá⌐½ ÑΘÑ ¡Ñ ßπΘÑßΓóπÑΓ */ │
- │ { │
- │ ¡áº¡áτ¿Γ∞ ßó«í«ñ¡δ⌐ ¿¡ñÑ¬ß ¿º Σá⌐½«ó«⌐ ß¿ßΓѼδ (á½ú«- │
- │ α¿Γ¼ ialloc); │
- │ ß«ºñáΓ∞ ¡«óπε Γ«τ¬π óσ«ñá ó α«ñ¿Γѽ∞߬«¼ ¬áΓὫúÑ: │
- │ ó¬½ετ¿Γ∞ ¿¼∩ ¡«ó«ú« Σá⌐½á ¿ ¡«¼Ñα ó¡«ó∞ ¡áº¡áτÑ¡¡«ú« │
- │ ¿¡ñѬßá; │
- │ } │
- │ óδñѽ¿Γ∞ ñ½∩ ¿¡ñѬßá ºá»¿ß∞ ó Γáí½¿µÑ Σá⌐½«ó, ¿¡¿µ¿á½¿º¿-│
- │ α«óáΓ∞ ßτÑΓτ¿¬; │
- │ Ñß½¿ (Σá⌐½ ßπΘÑßΓó«óá½ ¬ ¼«¼Ñ¡Γπ ß«ºñá¡¿∩) │
- │ «ßó«í«ñ¿Γ∞ óßÑ í½«¬¿ Σá⌐½á (á½ú«α¿Γ¼ free); │
- │ ß¡∩Γ∞ í½«¬¿α«ó¬π (ß ¿¡ñѬßá); │
- │ ó«ºóαáΓ¿Γ∞ (»«½∞º«óáΓѽ∞߬¿⌐ ñÑß¬α¿»Γ«α Σá⌐½á); │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
-
- É¿ßπ¡«¬ 5.12. ǽú«α¿Γ¼ ß«ºñá¡¿∩ Σá⌐½á
-
-
- 99
-
- ñá¡¡δσ ¿ πßΓá¡áó½¿óáÑΓ αẼÑα Σá⌐½á αáó¡δ¼ 0) »α¿ ¡á½¿τ¿¿ ß««ΓóÑΓßΓóπεΘ¿σ
- »αáó ñ«ßΓπ»á ¬ ¡Ñ¼π (***). ìá É¿ßπ¡¬Ñ 5.12 »α¿óÑñÑ¡ á½ú«α¿Γ¼ ß«ºñá¡¿∩ Σá⌐½á.
- ƒñα« »α«ó«ñ¿Γ ß¿¡Γá¬ß¿τÑ߬¿⌐ á¡á½¿º ¿¼Ñ¡¿ »πΓ¿ »«¿ß¬á, ¿ß»«½∞ºπ∩ á½ú«-
- α¿Γ¼ namei ¿ ß½Ññπ∩ φΓ«¼π á½ú«α¿Γ¼π íπ¬óá½∞¡«, ¬«úñá αÑτ∞ ¿ñÑΓ « αáºí«αÑ
- ¿¼Ñ¡ ¬áΓὫú«ó. Äñ¡á¬«, ¬«úñá ñѽ« ¬áßáÑΓß∩ »«ß½Ññ¡Ñ⌐ ¬«¼»«¡Ñ¡Γδ ¿¼Ñ¡¿ »πΓ¿
- »«¿ß¬á, á ¿¼Ñ¡¡« ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ß«ºñáóáѼ«ú« Σá⌐½á, namei «Γ¼ÑτáÑΓ ß¼ÑΘÑ¡¿Ñ
- ó íá⌐Γáσ ñ« »Ñαó«⌐
- »πßΓ«⌐ »«º¿µ¿¿ ó ¬áΓὫúÑ ¿ ºá»«¼¿¡áÑΓ φΓ« ß¼ÑΘÑ¡¿Ñ ó »α«ßΓαá¡ßΓóÑ »α«µÑßßá.
- àß½¿ ∩ñα« ¡Ñ «í¡áαπª¿½« ó ¬áΓὫúÑ ¬«¼»«¡Ñ¡Γπ ¿¼Ñ¡¿ »πΓ¿ »«¿ß¬á, «¡« ó ¬«-
- ¡Ñτ¡«¼ ßτÑΓÑ ó»¿ΦÑΓ ¿¼∩ ¬«¼»«¡Ñ¡Γδ ó Γ«½∞¬« τΓ« ¡á⌐ñÑ¡¡πε »πßΓπε »«º¿µ¿ε.
- àß½¿ ó ¬áΓὫúÑ ¡ÑΓ »πßΓδσ »«º¿µ¿⌐, ∩ñα« ºá»«¼¿¡áÑΓ ß¼ÑΘÑ¡¿Ñ ñ« ¬«¡µá ¬áΓá-
- ½«úá ¿ ß«ºñáÑΓ ¡«óπε »«º¿µ¿ε Γá¼. Ä¡« Γá¬ªÑ ºá»«¼¿¡áÑΓ ó »α«ßΓαá¡ßΓóÑ »α«-
- µÑßßá ¿¡ñÑ¬ß »α«ß¼áΓα¿óáѼ«ú« ¬áΓὫúá ¿ ñÑαª¿Γ ¿¡ñÑ¬ß ºáí½«¬¿α«óá¡¡δ¼; ¬á-
- ΓὫú ßΓá¡«ó¿Γß∩ »« «Γ¡«ΦÑ¡¿ε ¬ ¡«ó«¼π Σá⌐½π α«ñ¿Γѽ∞߬¿¼ ¬áΓὫú«¼. ƒñα« ¡Ñ
- ºá»¿ßδóáÑΓ »«¬á ¿¼∩ ¡«ó«ú« Σá⌐½á ó ¬áΓὫú, ΓᬠτΓ« ó ß½πτáÑ ó«º¡¿¬¡«óÑ¡¿∩
- «Φ¿í«¬ ∩ñαπ »α¿σ«ñ¿Γß∩ ¼Ñ¡∞ΦÑ »ÑαÑñѽδóáΓ∞. Ä¡« »α«óÑα∩ÑΓ ¡á½¿τ¿Ñ π »α«µÑßßá
- αáºαÑΦÑ¡¿∩ ¡á ºá»¿ß∞ ó ¬áΓὫú. ū߬«½∞¬π »α«µÑßß íπñÑΓ »α«¿ºó«ñ¿Γ∞ ºá»¿ß∞ ó
- ¬áΓὫú ó αѺπ½∞ΓáΓÑ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ creat, ¡á½¿τ¿Ñ αáºαÑΦÑ¡¿∩ ¡á ºá»¿ß∞
- ó ¬áΓὫú «º¡áτáÑΓ, τΓ« »α«µÑßßá¼ ñ«ºó«½∩ÑΓß∩ ß«ºñáóáΓ∞ Σá⌐½δ ó ¬áΓὫúÑ.
- ÅαÑñ»«½«ª¿ó, τΓ« »«ñ ñá¡¡δ¼ ¿¼Ñ¡Ñ¼ αá¡ÑÑ ¡Ñ ßπΘÑßΓó«óὫ Σá⌐½á, ∩ñα«
- ¡áº¡áτáÑΓ ¡«ó«¼π Σá⌐½π ¿¡ñѬß, ¿ß»«½∞ºπ∩ á½ú«α¿Γ¼ ialloc (αáºñѽ 4.6). çáΓѼ
- «¡« ºá»¿ßδóáÑΓ ¿¼∩ ¡«ó«ú« Σá⌐½á ¿ ¡«¼Ñα ó¡«ó∞ óδñѽѡ¡«ú« ¿¡ñѬßá ó α«ñ¿-
- Γѽ∞߬¿⌐ ¬áΓὫú, á ß¼ÑΘÑ¡¿Ñ ó íá⌐Γáσ ß«σαá¡∩ÑΓ ó »α«ßΓαá¡ßΓóÑ »α«µÑßßá.
- 黫߽ÑñßΓó¿¿ ∩ñα« «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá, πñÑনóáѼδ⌐ ß
- Γ«ú« óαѼѡ¿, ¬«úñá ó ¬áΓὫúÑ »α«¿ºó«ñ¿½ß∩ »«¿ß¬ ¿¼Ñ¡¿ Σá⌐½á. É«ñ¿Γѽ∞߬¿⌐
- ¬áΓὫú ΓÑ»Ñα∞ ß«ñÑαª¿Γ ¿¼∩ ¡«ó«ú« Σá⌐½á ¿ Ñú« ¿¡ñѬß. ƒñα« ºá»¿ßδóáÑΓ ó¡«ó∞
- óδñѽѡ¡δ⌐ ¿¡ñÑ¬ß ¡á ñ¿ß¬ (á½ú«α¿Γ¼ bwrite), »αѪñÑ τѼ ºá»¿ßáΓ∞ ¡á ñ¿ß¬ ¬á-
- ΓὫú ß ¡«óδ¼ ¿¼Ñ¡Ñ¼. àß½¿ ¼Ñªñπ «»Ñαᵿ∩¼¿ ºá»¿ß¿ ¿¡ñѬßá ¿ ¬áΓὫúá »α«¿-
- º«⌐ñÑΓ ßí«⌐ ß¿ßΓѼδ, ó ¿Γ«úÑ «¬áªÑΓß∩, τΓ« óδñѽѡ ¿¡ñѬß, ¡á ¬«Γ«αδ⌐ ¡Ñ
- ßßδ½áÑΓß∩ ¡¿ «ñ¡« ¿º ¿¼Ñ¡ »πΓÑ⌐ »«¿ß¬á ó ß¿ßΓѼÑ, «ñ¡á¬« ß¿ßΓѼá íπñÑΓ Σπ¡¬-
- µ¿«¡¿α«óáΓ∞ ¡«α¼á½∞¡«. àß½¿, ß ñαπú«⌐ ßΓ«α«¡δ, ¬áΓὫú íδ½ ºá»¿ßá¡ αá¡∞ΦÑ
- ó¡«ó∞ óδñѽѡ¡«ú« ¿¡ñѬßá ¿ ßí«⌐ ß¿ßΓÑ¼δ »α«¿º«Φѽ ¼Ñªñπ ¡¿¼¿, Σá⌐½«óá∩ ß¿ß-
- ΓѼá íπñÑΓ ß«ñÑαªáΓ∞ ¿¼∩ »πΓ¿ »«¿ß¬á, ßßδ½áεΘÑÑß∩ ¡á ¡ÑóÑα¡δ⌐ ¿¡ñÑ¬ß (í«½ÑÑ
- »«ñα«í¡« «í φΓ«¼ ß¼. ó αáºñÑ½Ñ 5.16.1).
- àß½¿ ñá¡¡δ⌐ Σá⌐½ πªÑ ßπΘÑßΓó«óá½ ñ« ó맮óá Σπ¡¬µ¿¿ creat, ∩ñα« «í¡áαπª¿-
- óáÑΓ Ñú« ¿¡ñÑ¬ß ó« óαѼ∩ »«¿ß¬á ¿¼Ñ¡¿ Σá⌐½á. æΓáαδ⌐ Σá⌐½ ñ«½ªÑ¡ »«ºó«½∩Γ∞
- »α«µÑßßπ »α«¿ºó«ñ¿Γ∞ ºá»¿ß∞ ó ¡Ñú«, τΓ«íδ ¼«ª¡« í佫 ß«ºñáΓ∞ "¡«óδ⌐" Σá⌐½ ß
- ΓѼ ªÑ ßá¼δ¼ ¿¼Ñ¡Ñ¼, Γᬠ¬á¬ ∩ñα« ¿º¼Ñ¡∩ÑΓ ß«ñÑন¼«Ñ Σá⌐½á »α¿ óδ»«½¡Ñ¡¿¿
- Σπ¡¬µ¿¿ creat: «¡« πßѬáÑΓ Σá⌐½, «ßó«í«ªñá∩ óßÑ ¿¡Σ«α¼áµ¿«¡¡δÑ í½«¬¿ »« á½-
- ú«α¿Γ¼π free, ΓᬠτΓ« Σá⌐½ íπñÑΓ óδú½∩ñÑΓ∞ ¬á¬ ó¡«ó∞ ß«ºñá¡¡δ⌐. ÆÑ¼ ¡Ñ ¼Ñ-
- ¡ÑÑ, ó½áñѽѵ ¿ »αáóá ñ«ßΓπ»á ¬ Σá⌐½π «ßΓáεΓß∩ »αѪ¡¿¼¿: ∩ñα« ¡Ñ »ÑαÑñáÑΓ
- »αáó« ß«íßΓóÑ¡¡«ßΓ¿ ¡á Σá⌐½ ó½áñѽ∞µπ »α«µÑßßá ¿ ¿ú¡«α¿απÑΓ »αáóá ñ«ßΓπ»á,
- π¬áºá¡¡δÑ »α«µÑßß«¼ ó ó맮óÑ Σπ¡¬µ¿¿. ìᬫ¡Ñµ, ∩ñα« ¡Ñ »α«óÑα∩ÑΓ ¡á½¿τ¿Ñ
- αáºαÑΦÑ¡¿∩ ¡á ºá»¿ß∞ ó ¬áΓὫú, ∩ó½∩εΘ¿⌐ß∩ α«ñ¿Γѽ∞߬¿¼ ñ½∩ ßπΘÑßΓóπεΘÑú«
- Σá⌐½á, »«ß¬«½∞¬π «¡« ¡Ñ ¼Ñ¡∩ÑΓ ß«ñÑন¼«ú« ¬áΓὫúá.
- öπ¡¬µ¿∩ creat »α«ñ«½ªáÑΓ αáí«Γπ, óδ»«½¡∩∩ ëà ªÑ á½ú«α¿Γ¼, τΓ« ¿ Σπ¡¬µ¿∩
- open. ƒñα« óδñѽ∩ÑΓ ß«ºñá¡¡«¼π Σá⌐½π ºá»¿ß∞ ó Γáí½¿µÑ Σá⌐½«ó, τΓ«íδ »α«µÑßß
- ¼«ú τ¿ΓáΓ∞ ¿º Σá⌐½á, á Γá¬ªÑ ºá»¿ß∞ ó Γáí½¿µÑ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó
- Σá⌐½á, ¿ ó ¬«¡µÑ ¬«¡µ«ó ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á »«ß½Ññ¡εε ºá»¿ß∞ ó ó¿ñÑ
- »«½∞º«óáΓѽ∞߬«ú« ñÑß¬α¿»Γ«αá Σá⌐½á.
-
-
-
- ───────────────────────────────────────
- (***) æ¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ open ¿¼ÑÑΓ ñóá Σ½áúá, O_CREAT (ß«ºñá¡¿Ñ) ¿ O_TRUNC
- (πßÑτÑ¡¿Ñ). àß½¿ »α«µÑßß πßΓá¡áó½¿óáÑΓ ó ó맮óÑ Σπ¡¬µ¿¿ Σ½áú O_CREAT ¿
- Σá⌐½ ¡Ñ ßπΘÑßΓóπÑΓ, ∩ñα« ß«ºñáßΓ Σá⌐½. àß½¿ Σá⌐½ πªÑ ßπΘÑßΓóπÑΓ, «¡ ¡Ñ
- íπñÑΓ πßÑτÑ¡, Ñß½¿ Γ«½∞¬« ¡Ñ πßΓá¡«ó½Ñ¡ Σ½áú O_TRUNC.
-
-
- 100
-
- E5.8 æÄçäÇìêà æÅàûêÇï£ì¢ò öÇëïÄéF
-
- æ¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ mknod ß«ºñáÑΓ ó ß¿ßΓÑ¼Ñ ß»Ñµ¿á½∞¡δÑ Σá⌐½δ, ó τ¿ß½« ¬«-
- Γ«αδσ ó¬½ετáεΓß∩ »«¿¼Ñ¡«óá¡¡δÑ ¬á¡á½δ, Σá⌐½δ πßΓα«⌐ßΓó ¿ ¬áΓὫú¿. Ä¡á »«σ«-
- ªá ¡á Σπ¡¬µ¿ε creat ó Γ«¼, τΓ« ∩ñα« óδñѽ∩ÑΓ ñ½∩ Σá⌐½á ¿¡ñѬß. æ¿¡Γá¬ß¿ß óδ-
- º«óá ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ mknod:
-
- mknod(pathname,type and permissions,dev)
-
- úñÑ pathname - ¿¼∩ ß«ºñáóáѼ«⌐ óÑαΦ¿¡δ ó ¿Ñαáασ¿τÑ߬«⌐ ßΓαπ¬ΓπαÑ Σá⌐½«ó«⌐
- ß¿ßΓѼδ, type and permissions - Γ¿» óÑαΦ¿¡δ (¡á»α¿¼Ñα, ¬áΓὫú) ¿ »αáóá ñ«ß-
- Γπ»á ¬ ß«ºñáóáѼ«¼π Σá⌐½π, á dev π¬áºδóáÑΓ ßΓáαΦ¿⌐ ¿ ¼½áñΦ¿⌐ ¡«¼Ñαá πßΓα«⌐ß-
- Γóá ñ½∩ í½«τ¡δσ ¿ ß¿¼ó«½∞¡δσ ߻ѵ¿á½∞¡δσ Σá⌐½«ó (ú½áóá 10). ìá É¿ßπ¡¬Ñ 5.13
- »α¿óÑñÑ¡ á½ú«α¿Γ¼, αÑ὿ºπѼδ⌐ Σπ¡¬µ¿Ñ⌐ mknod »α¿ ß«ºñá¡¿¿ ¡«ó«⌐ óÑαΦ¿¡δ.
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ ß«ºñá¡¿∩ ¡«ó«⌐ óÑαΦ¿¡δ │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: óÑαΦ¿¡á (¿¼∩ Σá⌐½á) │
- │ Γ¿» Σá⌐½á │
- │ »αáóá ñ«ßΓπ»á │
- │ ßΓáαΦ¿⌐, ¼½áñΦ¿⌐ ¡«¼Ñαá πßΓα«⌐ßΓóá │
- │ (ñ½∩ í½«τ¡δσ ¿ ß¿¼ó«½∞¡δσ ߻ѵ¿á½∞¡δσ │
- │ Σá⌐½«ó) │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: «ΓßπΓßΓóπÑΓ │
- │ { │
- │ Ñß½¿ (¡«óá∩ óÑαΦ¿¡á ¡Ñ ∩ó½∩ÑΓß∩ »«¿¼Ñ¡«óá¡¡δ¼ ¬á¡á½«¼ │
- │ ¿ »«½∞º«óáΓѽ∞ ¡Ñ ∩ó½∩ÑΓß∩ ßπ»Ñα»«½∞º«óáΓѽѼ) │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß óÑαΦ¿¡δ, ∩ó½∩εΘÑ⌐ß∩ α«ñ¿Γѽ∞߬«⌐ ñ½∩ │
- │ ¡«ó«⌐ óÑαΦ¿¡δ (á½ú«α¿Γ¼ namei); │
- │ Ñß½¿ (¡«óá∩ óÑαΦ¿¡á πªÑ ßπΘÑßΓóπÑΓ) │
- │ { │
- │ «ßó«í«ñ¿Γ∞ α«ñ¿Γѽ∞߬¿⌐ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ iput); │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ } │
- │ ¡áº¡áτ¿Γ∞ ñ½∩ ¡«ó«⌐ óÑαΦ¿¡δ ßó«í«ñ¡δ⌐ ¿¡ñÑ¬ß ¿º Σá⌐½«ó«⌐│
- │ ß¿ßΓѼδ (á½ú«α¿Γ¼ ialloc); │
- │ ß«ºñáΓ∞ ¡«óπε ºá»¿ß∞ ó α«ñ¿Γѽ∞߬«¼ ¬áΓὫúÑ: ó¬½ετ¿Γ∞ │
- │ ¿¼∩ ¡«ó«⌐ óÑαΦ¿¡δ ¿ ¡«¼Ñα ó¡«ó∞ ¡áº¡áτÑ¡¡«ú« ¿¡ñѬßá; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá (á½ú«α¿Γ¼ │
- │ iput); │
- │ Ñß½¿ (¡«óá∩ óÑαΦ¿¡á ∩ó½∩ÑΓß∩ í½«τ¡δ¼ ¿½¿ ß¿¼ó«½∞¡δ¼ ß»Ñ-│
- │ µ¿á½∞¡δ¼ Σá⌐½«¼) │
- │ ºá»¿ßáΓ∞ ßΓáαΦ¿⌐ ¿ ¼½áñΦ¿⌐ ¡«¼Ñαá ó ßΓαπ¬Γπαπ ¿¡ñѬ-│
- │ ßá; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß ¡«ó«⌐ óÑαΦ¿¡δ (á½ú«α¿Γ¼ iput); │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.13. ǽú«α¿Γ¼ ß«ºñá¡¿∩ ¡«ó«⌐ óÑαΦ¿¡δ
-
- ƒñα« »α«ß¼áΓα¿óáÑΓ Σá⌐½«óπε ß¿ßΓѼπ ó »«¿ß¬áσ ¿¼Ñ¡¿ Σá⌐½á, ¬«Γ«αδ⌐ «¡«
- ß«í¿αáÑΓß∩ ß«ºñáΓ∞. àß½¿ Σá⌐½ ÑΘÑ »«¬á ¡Ñ ßπΘÑßΓóπÑΓ, ∩ñα« ¡áº¡áτáÑΓ Ñ¼π ¡«-
- óδ⌐ ¿¡ñÑ¬ß ¡á ñ¿ß¬Ñ ¿ ºá»¿ßδóáÑΓ ¿¼∩ ¡«ó«ú« Σá⌐½á ¿ ¡«¼Ñα ¿¡ñѬßá ó α«ñ¿-
- Γѽ∞߬¿⌐ ¬áΓὫú. Ä¡« πßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ »«½∩ Γ¿»á Σá⌐½á ó ¿¡ñѬßÑ, π¬á-
- ºδóá∩, τΓ« Σá⌐½ ∩ó½∩ÑΓß∩ ¬á¡á½«¼, ¬áΓὫú«¼ ¿½¿ ߻ѵ¿á½∞¡δ¼ Σá⌐½«¼. ìᬫ¡Ñµ,
- Ñß½¿ Σá⌐½ ∩ó½∩ÑΓß∩ ߻ѵ¿á½∞¡δ¼ Σá⌐½«¼ πßΓα«⌐ßΓóá í½«τ¡«ú« ¿½¿ ß¿¼ó«½∞¡«ú«
- Γ¿»á, ∩ñα« ºá»¿ßδóáÑΓ ó ¿¡ñÑ¬ß ßΓáαΦ¿⌐ ¿ ¼½áñΦ¿⌐ ¡«¼Ñαá πßΓα«⌐ßΓóá. àß½¿
- Σπ¡¬µ¿∩ mknod ß«ºñáÑΓ ¬áΓὫú, «¡ íπñÑΓ ßπΘÑßΓó«óáΓ∞ »« ºáóÑαΦÑ¡¿¿ óδ»«½¡Ñ-
- ¡¿∩ Σπ¡¬µ¿¿, ¡« Ñú« ß«ñÑন¼«Ñ íπñÑΓ ¿¼ÑΓ∞ ¡ÑóÑα¡δ⌐ Σ«α¼áΓ (ó ¬áΓὫúÑ íπñπΓ
-
- 101
-
- «ΓßπΓßΓó«óáΓ∞ ºá»¿ß¿ ß ¿¼Ñ¡á¼¿ "." ¿ ".."). é π»α᪡ѡ¿¿ 5.33 αáßß¼áΓα¿óáεΓ-
- ß∩ Φáú¿, ¡Ñ«íσ«ñ¿¼δÑ ñ½∩ »αÑ«íαẫóá¡¿∩ ß«ñÑন¼«ú« ¬áΓὫúá ó »αáó¿½∞¡δ⌐
- Σ«α¼áΓ.
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ ß¼Ñ¡δ ¬áΓὫúá │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ¿¼∩ ¡«ó«ú« ¬áΓὫúá │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: «ΓßπΓßΓóπÑΓ │
- │ { │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß ñ½∩ ¬áΓὫúá ß ¡«óδ¼ ¿¼Ñ¡Ñ¼ (á½ú«α¿Γ¼ │
- │ namei); │
- │ Ñß½¿ (¿¡ñÑ¬ß ¡Ñ ∩ó½∩ÑΓß∩ ¿¡ñѬ߫¼ ¬áΓὫúá ¿½¿ ªÑ »α«- │
- │ µÑßßπ ¡Ñ αáºαÑΦÑ¡ ñ«ßΓπ» ¬ Σá⌐½π) │
- │ { │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ iput); │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ } │
- │ ß¡∩Γ∞ í½«¬¿α«ó¬π ß ¿¡ñѬßá; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß »αѪ¡Ñú« ΓѬπΘÑú« ¬áΓὫúá (á½ú«α¿Γ¼ │
- │ iput); │
- │ »«¼ÑßΓ¿Γ∞ ¡«óδ⌐ ¿¡ñÑ¬ß ó »«º¿µ¿ε ñ½∩ ΓѬπΘÑú« ¬áΓὫúá │
- │ ó »α«ßΓαá¡ßΓóÑ »α«µÑßßá; │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.14. ǽú«α¿Γ¼ ߼ѡδ ΓѬπΘÑú« ¬áΓὫúá
-
-
-
- E5.9 æîàìÇ ÆàèôÖàâÄ ê èÄÉìàéÄâÄ èÇÆÇïÄâÇF
-
- è«úñá ß¿ßΓÑ¼á ºáúαπªáÑΓß∩ ó»ÑαóδÑ, ¡π½Ñó«⌐ »α«µÑßß ñѽáÑΓ ¬«α¡Ñó«⌐ ¬áΓá-
- ½«ú Σá⌐½«ó«⌐ ß¿ßΓѼδ ΓѬπΘ¿¼ ¡á óαѼ∩ ¿¡¿µ¿á½¿ºáµ¿¿. ä½∩ ¿¡ñѬßá ¬«α¡Ñó«ú«
- ¬áΓὫúá ¡π½Ñó«⌐ »α«µÑßß óδ»«½¡∩ÑΓ á½ú«α¿Γ¼ iget, ß«σαá¡∩ÑΓ φëà ¿¡ñÑ¬ß ó
- »α«ßΓαá¡ßΓóÑ »α«µÑßßá ó ¬áτÑßΓóÑ ¿¡ñѬßá ΓѬπΘÑú« ¬áΓὫúá ¿ ß¡¿¼áÑΓ ß ¿¡-
- ñѬßá í½«¬¿α«ó¬π. è«úñá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ fork ß«ºñáÑΓß∩ ¡«óδ⌐ »α«µÑßß, «¡
- ¡áß½ÑñπÑΓ ΓѬπΘ¿⌐ ¬áΓὫú ßΓáα«ú« »α«µÑßßá ó ßó«Ñ¼ áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ, á
- ∩ñα«, ß««ΓóÑΓßΓóÑ¡¡«, πóѽ¿τ¿óáÑΓ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßß佫¬ ó ¿¡ñѬßÑ.
- ǽú«α¿Γ¼ chdir (É¿ßπ¡«¬ 5.14) ¿º¼Ñ¡∩ÑΓ ¿¼∩ ΓѬπΘÑú« ¬áΓὫúá ñ½∩ »α«µÑß-
- ßá. æ¿¡Γá¬ß¿ß ó맮óá ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ chdir:
-
- chdir(pathname);
-
- úñÑ pathname - ¬áΓὫú, ¬«Γ«αδ⌐ ßΓá¡«ó¿Γß∩ ΓѬπΘ¿¼ ñ½∩ »α«µÑßßá. ƒñα« á¡á½¿-
- º¿απÑΓ ¿¼∩ ¬áΓὫúá, ¿ß»«½∞ºπ∩ á½ú«α¿Γ¼ namei, ¿ »α«óÑα∩ÑΓ, ∩ó½∩ÑΓß∩ ½¿ ñá¡-
- ¡δ⌐ Σá⌐½ ¬áΓὫú«¼ ¿ ¿¼ÑÑΓ ½¿ ó½áñѽѵ »α«µÑßßá »αáó« ñ«ßΓπ»á ¬ ¬áΓὫúá.
- ƒñα« ß¡¿¼áÑΓ ß ¡«ó«ú« ¿¡ñѬßá í½«¬¿α«ó¬π, ¡« πñÑনóáÑΓ ¿¡ñÑ¬ß ó ¬áτÑßΓóÑ
- óδñѽѡ¡«ú« ¿ «ßΓáó½∩ÑΓ ßτÑΓτ¿¬ ßß佫¬ íѺ ¿º¼Ñ¡Ñ¡¿⌐, «ßó«í«ªñáÑΓ ¿¡ñѬß
- »αѪ¡Ñú« ΓѬπΘÑú« ¬áΓὫúá (á½ú«α¿Γ¼ iput), σαá¡∩Θ¿⌐ß∩ ó »α«ßΓαá¡ßΓóÑ »α«-
- µÑßßá, ¿ ºá»«¼¿¡áÑΓ ó φΓ«¼ »α«ßΓαá¡ßΓóÑ ¡«óδ⌐ ¿¡ñѬß. Å«ß½Ñ ß¼Ñ¡δ »α«µÑßß«¼
- ΓѬπΘÑú« ¬áΓὫúá á½ú«α¿Γ¼ namei ¿ß»«½∞ºπÑΓ ¿¡ñÑ¬ß ó ¬áτÑßΓóÑ ¡áτá½∞¡«ú« ¬á-
- ΓὫúá »α¿ á¡á½¿ºÑ óßÑσ ¿¼Ñ¡ »πΓÑ⌐, ¬«Γ«αδÑ ¡Ñ íÑαπΓ ¡áτὫ «Γ ¬«α¡∩. Å«
- «¬«¡τá¡¿¿ óδ»«½¡Ñ¡¿∩ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ chdir ßτÑΓτ¿¬ ßß佫¬ ¡á ¿¡ñÑ¬ß ¡«ó«ú«
- ¬áΓὫúá ¿¼ÑÑΓ º¡áτÑ¡¿Ñ, ¬á¬ ¼¿¡¿¼π¼, 1, á ßτÑΓτ¿¬ ßß佫¬ ¡á ¿¡ñÑ¬ß »αѪ¡Ñú«
- ΓѬπΘÑú« ¬áΓὫúá ¼«ªÑΓ ßΓáΓ∞ αáó¡δ¼ 0. é φΓ«¼ «Γ¡«ΦÑ¡¿¿ Σπ¡¬µ¿∩ chdir »«σ«-
- ªá ¡á Σπ¡¬µ¿ε open, »«ß¬«½∞¬π «íÑ Σπ¡¬µ¿¿ «íαáΘáεΓß∩ ¬ Σá⌐½π ¿ «ßΓáó½∩εΓ Ñú«
- ¿¡ñÑ¬ß ó ¬áτÑßΓóÑ óδñѽѡ¡«ú«. ê¡ñѬß, óδñѽѡ¡δ⌐ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ Σπ¡¬-
- µ¿¿ chdir, «ßó«í«ªñáÑΓß∩ Γ«½∞¬« Γ«úñá, ¬«úñá »α«µÑßß ¼Ñ¡∩ÑΓ ΓѬπΘ¿⌐ ¬áΓὫú
- ÑΘÑ αẠ¿½¿ ¬«úñá »α«µÑßß ºáóÑαΦáÑΓß∩.
-
- 102
-
- Åα«µÑßßδ «íδτ¡« ¿ß»«½∞ºπεΓ ú½«íá½∞¡δ⌐ ¬«α¡Ñó«⌐ ¬áΓὫú Σá⌐½«ó«⌐ ß¿ßΓѼδ
- ñ½∩ óßÑσ ¿¼Ñ¡ »πΓÑ⌐ »«¿ß¬á, ¡áτ¿¡áεΘ¿σß∩ ß "/". ƒñα« σαá¡¿Γ ú½«íá½∞¡πε »ÑαÑ-
- ¼Ñ¡¡πε, ¬«Γ«αá∩ π¬áºδóáÑΓ ¡á ¿¡ñÑ¬ß ú½«íá½∞¡«ú« ¬«α¡∩, óδñѽ∩Ѽδ⌐ »« á½ú«-
- α¿Γ¼π iget »α¿ ºáúαπº¬Ñ ß¿ßΓѼδ. Åα«µÑßßδ ¼«úπΓ ¼Ñ¡∩Γ∞ ßó«Ñ »αÑñßΓáó½Ñ¡¿Ñ «
- ¬«α¡Ñó«¼ ¬áΓὫúÑ Σá⌐½«ó«⌐ ß¿ßΓѼδ ß »«¼«Θ∞ε ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ chroot. ¥Γ«
- íδóáÑΓ »«½Ñº¡«, Ñß½¿ »«½∞º«óáΓÑ½ε ¡πª¡« ß«ºñáΓ∞ ¼«ñѽ∞ «íδτ¡«⌐ ¿Ñαáασ¿τÑ߬«⌐
- ßΓαπ¬Γπαδ Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ¿ ºá»πßΓ¿Γ∞ »α«µÑßßδ Γá¼. æ¿¡Γá¬ß¿ß ó맮óá Σπ¡¬-
- 樨:
-
- chroot(pathname);
-
- úñÑ pathname - ¬áΓὫú, ¬«Γ«αδ⌐ ó»«ß½ÑñßΓó¿¿ íπñÑΓ αáßß¼áΓα¿óáΓ∞ß∩ ∩ñα«¼ ó
- ¬áτÑßΓóÑ ¬«α¡Ñó«ú« ¬áΓὫúá ñ½∩ »α«µÑßßá. éδ»«½¡∩∩ Σπ¡¬µ¿ε chroot, ∩ñα« ß½Ñ-
- ñπÑΓ Γ«¼π ªÑ á½ú«α¿Γ¼π, τΓ« ¿ »α¿ ß¼Ñ¡Ñ ΓѬπΘÑú« ¬áΓὫúá. Ä¡« ºá»«¼¿¡áÑΓ
- ¿¡ñÑ¬ß ¡«ó«ú« ¬«α¡∩ ó »α«ßΓαá¡ßΓóÑ »α«µÑßßá, ß¡¿¼á∩ ß ¿¡ñѬßá í½«¬¿α«ó¬π »«
- ºáóÑαΦÑ¡¿¿ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ, Γᬠ¬á¬ π¼«½τá¡¿Ñ ¡á ¬«αÑ¡∞ ñ½∩
- ∩ñαá σαá¡¿Γß∩ ó ú½«íá½∞¡«⌐ »ÑαѼѡ¡«⌐, ∩ñα« «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß »αѪ¡Ñú« ¬«α-
- ¡∩ ¡Ñ áóΓ«¼áΓ¿τÑ߬¿, á Γ«½∞¬« »«ß½Ñ Γ«ú«, ¬á¬ «¡« ßἫ ¿½¿ »α«µÑßß-»αÑñ«¬
- ¿ß»«½¡∩Γ ó맮ó Σπ¡¬µ¿¿ chroot. ì«óδ⌐ ¿¡ñÑ¬ß ßΓá¡«ó¿Γß∩ ½«ú¿τÑ߬¿¼ ¬«α¡Ñ¼
- Σá⌐½«ó«⌐ ß¿ßΓѼδ ñ½∩ »α«µÑßßá (¿ ñ½∩ óßÑσ »«α«ªñÑ¡¡δσ ¿¼ »α«µÑßß«ó) ¿ φΓ«
- «º¡áτáÑΓ, τΓ« óßÑ »πΓ¿ »«¿ß¬á ó á½ú«α¿Γ¼Ñ namei, ¡áτ¿¡áεΘ¿Ñß∩ ß ¬«α¡∩ ("/"),
- ó«º∞¼πΓ ¡áτὫ ß ñá¡¡«ú« ¿¡ñѬßá ¿ τΓ« óßÑ »«»δΓ¬¿ ó«⌐Γ¿ ó ¬áΓὫú ".." ¡áñ
- ¬«α¡Ñ¼ »α¿óÑñπΓ ¬ Γ«¼π, τΓ« αáí«τ¿¼ ¬áΓὫú«¼ »α«µÑßßá «ßΓá¡ÑΓß∩ ¡«óδ⌐ ¬«-
- αÑ¡∞. Åα«µÑßß »ÑαÑñáÑΓ óßѼ ó¡«ó∞ »«α«ªñáÑ¼δ¼ »α«µÑßßá¼ φëà ¬áΓὫú ó ¬á-
- τÑßΓóÑ ¬«α¡Ñó«ú« »«ñ«í¡« Γ«¼π, ¬á¬ »ÑαÑñáÑΓ ßó«⌐ ΓѬπΘ¿⌐ ¬áΓὫú.
-
-
- E5.10 æîàìÇ éïÇäàï£ûÇ ê ÉàåêîÇ äÄæÆôÅÇ è öÇëïôF
-
- æ¼Ñ¡á ó½áñѽ∞µá ¿½¿ αѪ¿¼á (»αáó) ñ«ßΓπ»á ¬ Σá⌐½π ∩ó½∩ÑΓß∩ «»ÑαᵿÑ⌐,
- »α«¿ºó«ñ¿¼«⌐ ¡áñ ¿¡ñѬ߫¼, á ¡Ñ ¡áñ Σá⌐½«¼. æ¿¡Γá¬ß¿ß ó맮óá ß««ΓóÑΓßΓóπεΘ¿σ
- ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐:
-
- chown(pathname,owner,group)
- chmod(pathname,mode)
-
- ä½∩ Γ«ú«, τΓ«íδ »«¼Ñ¡∩Γ∞ ó½áñѽ∞µá Σá⌐½á, ∩ñα« »αÑ«íαáºπÑΓ ¿¼∩ Σá⌐½á ó
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¿¡ñѬßá, ¿ß»«½∞ºπ∩ á½ú«α¿Γ¼ namei. é½áñѽѵ »α«µÑßßá ñ«½ªÑ¡
- íδΓ∞ ßπ»Ñα»«½∞º«óáΓѽѼ ¿½¿ ó½áñѽ∞µÑ¼ Σá⌐½á (»α«µÑßß ¡Ñ ¼«ªÑΓ αáß»«α∩ªáΓ∞ß∩
- ΓѼ, τΓ« ¡Ñ »α¿¡áñ½Ñª¿Γ Ѽπ). çáΓѼ ∩ñα« ¡áº¡áτáÑΓ Σá⌐½π ¡«ó«ú« ó½áñѽ∞µá ¿
- ¡«ó«ú« úαπ»»«ó«ú« »«½∞º«óáΓѽ∩, ßíαáßδóáÑΓ Σ½áú¿ »αѪ¡¿σ πßΓá¡«ó«¬ (ß¼. αáº-
- ñѽ 7.5) ¿ «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß »« á½ú«α¿Γ¼π iput. Å«ß½Ñ φΓ«ú« »αѪ¡¿⌐ ó½áñÑ-
- ½Ñµ ΓÑα∩ÑΓ »αáó« "ß«íßΓóÑ¡¡«ßΓ¿" ¡á Σá⌐½. ä½∩ Γ«ú«, τΓ«íδ »«¼Ñ¡∩Γ∞ αѪ¿¼
- ñ«ßΓπ»á ¬ Σá⌐½π, ∩ñα« óδ»«½¡∩ÑΓ »α«µÑñπαπ, »«ñ«í¡πε «»¿ßá¡¡«⌐, ó¼ÑßΓ« ¬«ñá
- ó½áñѽ∞µá ¼Ñ¡∩∩ Σ½áú¿, πßΓá¡áó½¿óáεΘ¿Ñ αѪ¿¼ ñ«ßΓπ»á.
-
-
- E5.11 STAT ê FSTATF
-
- æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿ stat ¿ fstat »«ºó«½∩εΓ »α«µÑßßá¼ ºá»αáΦ¿óáΓ∞ ¿¡Σ«α¼á-
- µ¿ε « ßΓáΓπßÑ Σá⌐½á: Γ¿»Ñ Σá⌐½á, ó½áñѽ∞µÑ Σá⌐½á, »αáóáσ ñ«ßΓπ»á, αẼÑαÑ
- Σá⌐½á, τ¿ß½Ñ ßó∩ºÑ⌐, ¡«¼ÑαÑ ¿¡ñѬßá ¿ óαѼѡ¿ ñ«ßΓπ»á ¬ Σá⌐½π. æ¿¡Γá¬ß¿ß óδ-
- º«óá Σπ¡¬µ¿⌐:
-
- stat(pathname,statbuffer);
- fstat(fd,statbuffer);
-
- úñÑ pathname - ¿¼∩ Σá⌐½á, fd - ñÑß¬α¿»Γ«α Σá⌐½á, ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐ open,
- statbuffer - áñαÑß ßΓαπ¬Γπαδ ñá¡¡δσ »«½∞º«óáΓѽ∞߬«ú« »α«µÑßßá, úñÑ íπñÑΓ
-
- 103
-
- σαá¡¿Γ∞ß∩ ¿¡Σ«α¼áµ¿∩ « ßΓáΓπßÑ Σá⌐½á »«ß½Ñ ºáóÑαΦÑ¡¿∩ óδ»«½¡Ñ¡¿∩ ó맮óá.
- æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿ »α«ßΓ« »ÑαÑ»¿ßδóáεΓ »«½∩ ¿º ¿¡ñѬßá ó ßΓαπ¬Γπαπ
- statbuffer. Åα«úαá¼¼á ¡á É¿ßπ¡¬Ñ 5.33 ¿½½εßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐
- stat ¿ fstat.
-
- éδºδóáÑΓ ¬á¡á½ ìÑ ¼«úπΓ ß«ó¼ÑßΓ¡« ¿ß»«½∞º«óáΓ∞
- ∙ ¬á¡á½
- ∙ ∙ ∙
- ∙ ∙ ∙
- ∙ ∙ ∙
- ∙ Åα«µÑßß A ∙
- ∙ │ ∙
- ∙ ┌─────────────┴──────────────┐ ∙
- ∙ │ │ ∙
- Åα«µÑßß B Åα«µÑßß C
- │
- ┌───────┴───────┐
- │ │
- Åα«µÑßß D ∙ Åα«µÑßß E
- ∙ ∙ ∙
- ∙ ∙ ∙
- ∙ ∙ ∙
- ∙
- æ«ó¼ÑßΓ¡« ¿ß»«½∞ºπεΓ
- ¬á¡á½
-
- É¿ßπ¡«¬ 5.15. äÑαÑó« »α«µÑßß«ó ¿ ß«ó¼ÑßΓ¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ¬á¡á½«ó
-
-
-
- E5.12 èÇìÇï¢F
-
- èá¡á½δ »«ºó«½∩εΓ »ÑαÑñáóáΓ∞ ñá¡¡δÑ ¼Ñªñπ »α«µÑßßἿ ó »«α∩ñ¬Ñ »«ßΓπ»½Ñ-
- ¡¿∩ ("»Ñαóδ¼ »α¿Φѽ - »Ñαóδ¼ óδΦѽ"), á Γá¬ªÑ ß¿¡σα«¡¿º¿α«óáΓ∞ óδ»«½¡Ñ¡¿Ñ
- »α«µÑßß«ó. êσ ¿ß»«½∞º«óá¡¿Ñ ñáÑΓ »α«µÑßßἠ󫺼«ª¡«ßΓ∞ óºá¿¼«ñÑ⌐ßΓó«óáΓ∞
- ¼Ñªñπ ß«í«⌐, »πßΓ∞ ñáªÑ ¡Ñ ¿ºóÑßΓ¡«, ¬á¬¿Ñ »α«µÑßßδ ¡áσ«ñ∩Γß∩ ¡á ñαπú«¼ ¬«¡-
- µÑ ¬á¡á½á. Æαáñ¿µ¿«¡¡á∩ αÑ὿ºáµ¿∩ ¬á¡á½«ó ¿ß»«½∞ºπÑΓ Σá⌐½«óπε ß¿ßΓѼπ ñ½∩
- σαá¡Ñ¡¿∩ ñá¡¡δσ. Éẽ¿τáεΓ ñóá ó¿ñá ¬á¡á½«ó: »«¿¼Ñ¡«óá¡¡δÑ ¬á¡á½δ ¿, ºá «Γ-
- ßπΓßΓó¿Ñ¼ ½πτΦÑú« ΓÑନ¡á, ¡Ñ»«¿¼Ñ¡«óá¡¡δÑ ¬á¡á½δ, ¬«Γ«αδÑ ¿ñÑ¡Γ¿τ¡δ ¼Ñªñπ
- ß«í«⌐ ó« óßѼ, ¬α«¼Ñ ß»«ß«íá »Ñαó«¡áτá½∞¡«ú« «íαáΘÑ¡¿∩ ¬ ¡¿¼ »α«µÑßß«ó. ä½∩
- »«¿¼Ñ¡«óá¡¡δσ ¬á¡á½«ó »α«µÑßßδ ¿ß»«½∞ºπεΓ ß¿ßΓѼ¡πε Σπ¡¬µ¿ε open, á ß¿ßΓѼ-
- ¡πε Σπ¡¬µ¿ε pipe - ñ½∩ ß«ºñá¡¿∩ ¡Ñ»«¿¼Ñ¡«óá¡¡«ú« ¬á¡á½á. 黫߽ÑñßΓó¿¿, »α¿
- αáí«ΓÑ ß ¬á¡á½á¼¿ »α«µÑßßδ »«½∞ºπεΓß∩ «íδτ¡δ¼¿ ß¿ßΓѼ¡δ¼¿ Σπ¡¬µ¿∩¼¿ ñ½∩ Σá⌐-
- ½«ó, Γᬿ¼¿ ¬á¬ read, write ¿ close. Æ«½∞¬« ßó∩ºá¡¡δÑ ¼Ñªñπ ß«í«⌐ »α«µÑßßδ,
- ∩ó½∩εΘ¿Ñß∩ »«Γ«¼¬á¼¿ Γ«ú« »α«µÑßßá, ¬«Γ«αδ⌐ óδºóá½ Σπ¡¬µ¿ε pipe, ¼«úπΓ αáº-
- ñѽ∩Γ∞ ñ«ßΓπ» ¬ ¡Ñ»«¿¼Ñ¡«óá¡¡δ¼ ¬á¡á½á¼. ìá»α¿¼Ñα (ß¼. É¿ßπ¡«¬ 5.15), Ñß½¿
- »α«µÑßß B ß«ºñáÑΓ ¬á¡á½ ¿ »«α«ªñáÑΓ »α«µÑßßδ D ¿ E, φΓ¿ Γα¿ »α«µÑßßá αáºñÑ-
- ½∩εΓ ¼Ñªñπ ß«í«⌐ ñ«ßΓπ» ¬ ¬á¡á½π, ó «Γ½¿τ¿Ñ «Γ »α«µÑßß«ó A ¿ C. Äñ¡á¬«, óßÑ
- »α«µÑßßδ ¼«úπΓ «íαáΘáΓ∞ß∩ ¬ »«¿¼Ñ¡«óá¡¡«¼π ¬á¡á½π ¡Ñºáó¿ß¿¼« «Γ óºá¿¼««Γ¡«-
- ΦÑ¡¿⌐ ¼Ñªñπ ¡¿¼¿, »α¿ πß½«ó¿¿ ¡á½¿τ¿∩ «íδτ¡δσ »αáó ñ«ßΓπ»á ¬ Σá⌐½π. ū߬«½∞-
- ¬π ¡Ñ»«¿¼Ñ¡«óá¡¡δÑ ¬á¡á½δ óßΓαÑτáεΓß∩ τáΘÑ, «¡¿ íπñπΓ αáßß¼«ΓαÑ¡δ »Ñαó묨.
-
-
- E5.12.1 æ¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ pipeF
-
- æ¿¡Γá¬ß¿ß ó맮óá Σπ¡¬µ¿¿ ß«ºñá¡¿∩ ¬á¡á½á:
-
- pipe(fdptr);
-
-
- 104
-
- úñÑ fdptr - π¬áºáΓѽ∞ ¡á ¼áßß¿ó ¿º ñóπσ µÑ½δσ »ÑαѼѡ¡δσ, ó ¬«Γ«α«¼ íπñπΓ
- σαá¡¿Γ∞ß∩ ñóá ñÑß¬α¿»Γ«αá Σá⌐½á ñ½∩ τΓÑ¡¿∩ ¿º ¬á¡á½á ¿ ñ½∩ ºá»¿ß¿ ó ¬á¡á½.
- ū߬«½∞¬π ∩ñα« αÑ὿ºπÑΓ ¬á¡á½δ ó¡πΓα¿ Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ¿ »«ß¬«½∞¬π ¬á¡á½ ¡Ñ
- ßπΘÑßΓóπÑΓ ñ« Γ«ú«, ¬á¬ Ñú« íπñπΓ ¿ß»«½∞º«óáΓ∞, ∩ñα« ñ«½ª¡« »α¿ ß«ºñá¡¿¿ ¬á-
- ¡á½á ¡áº¡áτ¿Γ∞ Ñ¼π ¿¡ñѬß. Ä¡« Γá¬ªÑ ¡áº¡áτáÑΓ ñ½∩ ¬á¡á½á »áαπ »«½∞º«óáΓѽ∞-
- ߬¿σ ñÑß¬α¿»Γ«α«ó ¿ ß««ΓóÑΓßΓóπεΘ¿Ñ ¿¼ ºá»¿ß¿ ó Γáí½¿µÑ Σá⌐½«ó: «ñ¿¡ ¿º ñÑß-
- ¬α¿»Γ«α«ó ñ½∩ τΓÑ¡¿∩ ¿º ¬á¡á½á, á ñαπú«⌐ ñ½∩ ºá»¿ß¿ ó ¬á¡á½. ū߬«½∞¬π ∩ñα«
- »«½∞ºπÑΓß∩ Γáí½¿µÑ⌐ Σá⌐½«ó, ¿¡ΓÑαΣÑ⌐ß ñ½∩ ó맮óá Σπ¡¬µ¿⌐ read, write ¿ ñα.
- ß«ú½áßπÑΓß∩ ß ¿¡ΓÑαΣÑ⌐ß«¼ ñ½∩ «íδτ¡δσ Σá⌐½«ó. é αѺπ½∞ΓáΓÑ »α«µÑßßá¼ ¡ÑΓ ¡á-
- ñ«í¡«ßΓ¿ º¡áΓ∞, óÑñπΓ ½¿ «¡¿ τΓÑ¡¿Ñ ¿½¿ ºá»¿ß∞ ó «íδτ¡δ⌐ Σá⌐½ ¿½¿ ó ¬á¡á½.
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ pipe │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: «ΓßπΓßΓóπÑΓ │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ñÑß¬α¿»Γ«α Σá⌐½á ñ½∩ τΓÑ¡¿∩ │
- │ ñÑß¬α¿»Γ«α Σá⌐½á ñ½∩ ºá»¿ß¿ │
- │ { │
- │ ¡áº¡áτ¿Γ∞ ¡«óδ⌐ ¿¡ñÑ¬ß ¿º πßΓα«⌐ßΓóá ¬á¡á½á (á½ú«α¿Γ¼ │
- │ ialloc); │
- │ óδñѽ¿Γ∞ «ñ¡π ºá»¿ß∞ ó Γáí½¿µÑ Σá⌐½«ó ñ½∩ τΓÑ¡¿∩, «ñ¡π -│
- │ ñ½∩ »ÑαÑ»¿ß¿; │
- │ ¿¡¿µ¿á½¿º¿α«óáΓ∞ ºá»¿ß¿ ó Γáí½¿µÑ Σá⌐½«ó Γᬿ¼ «íαẫ¼, │
- │ τΓ«íδ «¡¿ π¬áºδó὿ ¡á ¡«óδ⌐ ¿¡ñѬß; │
- │ óδñѽ¿Γ∞ «ñ¿¡ »«½∞º«óáΓѽ∞߬¿⌐ ñÑß¬α¿»Γ«α Σá⌐½á ñ½∩ τΓÑ-│
- │ ¡¿∩, «ñ¿¡ - ñ½∩ ºá»¿ß¿, »α«¿¡¿µ¿á½¿º¿α«óáΓ∞ ¿σ Γᬿ¼ │
- │ «íαẫ¼, τΓ«íδ «¡¿ π¬áºδó὿ ¡á ß««ΓóÑΓßΓóπεΘ¿Ñ Γ«τ¬¿ │
- │ óσ«ñá ó Γáí½¿µÑ Σá⌐½«ó; │
- │ πßΓá¡«ó¿Γ∞ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßß佫¬ ó ¿¡ñѬßÑ αáó¡δ¼ 2; │
- │ πßΓá¡«ó¿Γ∞ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á τ¿ß½á »α«µÑßß«ó, »α«¿ºó«ñ∩-│
- │ Θ¿σ τΓÑ¡¿Ñ, ¿ »α«µÑßß«ó, »α«¿ºó«ñ∩Θ¿σ ºá»¿ß∞, αáó¡δ¼ 1;│
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.16. ǽú«α¿Γ¼ ß«ºñá¡¿∩ ¬á¡á½«ó (¡Ñ»«¿¼Ñ¡«óá¡¡δσ)
-
-
- ìá É¿ßπ¡¬Ñ 5.16 »«¬áºá¡ á½ú«α¿Γ¼ ß«ºñá¡¿∩ ¡Ñ»«¿¼Ñ¡«óá¡¡δσ ¬á¡á½«ó. ƒñα«
- ¡áº¡áτáÑΓ ¿¡ñÑ¬ß ñ½∩ ¬á¡á½á ¿º Σá⌐½«ó«⌐ ß¿ßΓѼδ, «í«º¡áτÑ¡¡«⌐ ¬á¬ "πßΓα«⌐ßΓ-
- ó« ¬á¡á½á", ¿ß»«½∞ºπ∩ á½ú«α¿Γ¼ ialloc. ôßΓα«⌐ßΓó« ¬á¡á½á - φΓ« ¿¼Ñ¡¡« Γá
- Σá⌐½«óá∩ ß¿ßΓѼá, ¿º ¬«Γ«α«⌐ ∩ñα« ¼«ªÑΓ ¡áº¡áτáΓ∞ ¬á¡á½á¼ ¿¡ñѬßδ ¿ óδñѽ∩Γ∞
- í½«¬¿ ñ½∩ ñá¡¡δσ. Çñ¼¿¡¿ßΓαáΓ«αδ ß¿ßΓѼδ π¬áºδóáεΓ πßΓα«⌐ßΓó« ¬á¡á½á »α¿
- ¬«¡Σ¿úπα¿α«óá¡¿¿ ß¿ßΓÑ¼δ ¿ φΓ¿ πßΓα«⌐ßΓóá ¼«úπΓ ß«ó»áñáΓ∞ π αạδσ Σá⌐½«óδσ
- ß¿ßΓѼ. Å«¬á ¬á¡á½ á¬Γ¿óÑ¡, ∩ñα« ¡Ñ ¼«ªÑΓ »Ñαѡạáτ¿Γ∞ ¿¡ñÑ¬ß ¬á¡á½á ¿ ¿¡-
- Σ«α¼áµ¿«¡¡δÑ í½«¬¿ ¬á¡á½á ñαπú«¼π Σá⌐½π.
- çáΓѼ ∩ñα« óδñѽ∩ÑΓ ó Γáí½¿µÑ Σá⌐½«ó ñóÑ ºá»¿ß¿, ß««ΓóÑΓßΓóπεΘ¿Ñ ñÑ߬-
- α¿»Γ«αá¼ ñ½∩ τΓÑ¡¿∩ ¿ ºá»¿ß¿ ó ¬á¡á½, ¿ ¬«ααÑ¬Γ¿απÑΓ "íπσúá½ΓÑα߬πε" ¿¡Σ«α-
- ¼áµ¿ε ó ¬«»¿¿ ¿¡ñѬßá ó »á¼∩Γ¿. é ¬áªñ«⌐ ¿º óδñѽѡ¡δσ ºá»¿ßÑ⌐ ó Γáí½¿µÑ
- Σá⌐½«ó σαá¡¿Γß∩ ¿¡Σ«α¼áµ¿∩ « Γ«¼, ߬«½∞¬« φ¬ºÑ¼»½∩α«ó ¬á¡á½á «Γ¬αδΓ« ñ½∩
- τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿ (»Ñαó«¡áτá½∞¡« 1), á ßτÑΓτ¿¬ ßß佫¬ ó ¿¡ñѬßÑ π¬áºδóáÑΓ,
- ߬«½∞¬« αẠ¬á¡á½ íδ½ "«Γ¬αδΓ" (»Ñαó«¡áτá½∞¡« 2 - »« «ñ¡«¼π ñ½∩ ¬áªñ«⌐ ºá»¿-
- ß¿ Γáí½¿µδ Σá⌐½«ó). ìᬫ¡Ñµ, ó ¿¡ñѬßÑ ºá»¿ßδóáεΓß∩ ß¼ÑΘÑ¡¿∩ ó íá⌐Γáσ ó¡πΓα¿
- ¬á¡á½á ñ« ¼ÑßΓá, úñÑ íπñÑΓ ¡áτ¿¡áΓ∞ß∩ ß½ÑñπεΘá∩ «»Ñαᵿ∩ ºá»¿ß¿ ¿½¿ τΓÑ¡¿∩.
- ü½áú«ñáα∩ ß«σαá¡Ñ¡¿ε φΓ¿σ ß¼ÑΘÑ¡¿⌐ ó ¿¡ñѬßÑ ¿¼ÑÑΓß∩ 󫺼«ª¡«ßΓ∞ »α«¿ºó«ñ¿Γ∞
- ñ«ßΓπ» ¬ ñá¡¡δ¼ ó ¬á¡á½Ñ ó »«α∩ñ¬Ñ ¿σ »«ßΓπ»½Ñ¡¿∩ ó ¬á¡á½ ("»Ñαóδ¼ »α¿Φѽ -
- »Ñαóδ¼ óδΦѽ"); φëà ¼«¼Ñ¡Γ ∩ó½∩ÑΓß∩ «ß«íÑ¡¡«ßΓ∞ε ¬á¡á½«ó, »«ß¬«½∞¬π ñ½∩
- «íδτ¡δσ Σá⌐½«ó ß¼ÑΘÑ¡¿∩ σαá¡∩Γß∩ ó Γáí½¿µÑ Σá⌐½«ó. Åα«µÑßßδ ¡Ñ ¼«úπΓ ¼Ñ¡∩Γ∞
- φΓ¿ ß¼ÑΘÑ¡¿∩ ß »«¼«Θ∞ε ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ lseek ¿ »«φΓ«¼π »α«¿ºó«½∞¡δ⌐ ñ«ßΓπ»
- ¬ ñá¡¡δ¼ ¬á¡á½á ¡Ñ󫺼«ªÑ¡.
-
-
- 105
-
- E5.12.2 ÄΓ¬αδΓ¿Ñ »«¿¼Ñ¡«óá¡¡«ú« ¬á¡á½áF
-
- Å«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ - φΓ« Σá⌐½, ¿¼ÑεΘ¿⌐ »«τΓ¿ Γá¬πε ªÑ ßѼá¡Γ¿¬π, ¬á¬ ¿
- ¡Ñ»«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« φΓ«¼π Σá⌐½π ß««ΓóÑΓßΓóπÑΓ
- ºá»¿ß∞ ó ¬áΓὫúÑ ¿ «íαáΘÑ¡¿Ñ ¬ ¡Ñ¼π »α«¿ºó«ñ¿Γß∩ »« ¿¼Ñ¡¿. Åα«µÑßßδ «Γ¬αδ-
- óáεΓ »«¿¼Ñ¡«óá¡¡δÑ ¬á¡á½δ ΓᬠªÑ, ¬á¬ ¿ «íδτ¡δÑ Σá⌐½δ, ¿, ß½Ññ«óáΓѽ∞¡«, ß
- »«¼«Θ∞ε »«¿¼Ñ¡«óá¡¡δσ ¬á¡á½«ó ¼«úπΓ óºá¿¼«ñÑ⌐ßΓó«óáΓ∞ ¼Ñªñπ ß«í«⌐ ñáªÑ »α«-
- µÑßßδ, ¡Ñ ¿¼ÑεΘ¿Ñ ñαπú ¬ ñαπúπ í½¿º¬«ú« «Γ¡«ΦÑ¡¿∩. Å«¿¼Ñ¡«óá¡¡δÑ ¬á¡á½δ »«ß-
- Γ«∩¡¡« »α¿ßπΓßΓóπεΓ ó ¿Ñαáασ¿¿ Σá⌐½«ó«⌐ ß¿ßΓѼδ (¿º ¬«Γ«α«⌐ «¡¿ πñá½∩εΓß∩ ß
- »«¼«Θ∞ε ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ unlink), á ¡Ñ»«¿¼Ñ¡«óá¡¡δÑ ¬á¡á½δ ∩ó½∩εΓß∩ óαѼѡ-
- ¡δ¼¿: ¬«úñá óßÑ »α«µÑßßδ ºá¬á¡τ¿óáεΓ αáí«Γπ ß ¬á¡á½«¼, ∩ñα« «Γí¿αáÑΓ ¡áºáñ
- Ñú« ¿¡ñѬß.
- ǽú«α¿Γ¼ «Γ¬αδΓ¿∩ »«¿¼Ñ¡«óá¡¡«ú« ¬á¡á½á ¿ñÑ¡Γ¿τÑ¡ á½ú«α¿Γ¼π «Γ¬αδΓ¿∩
- «íδτ¡«ú« Σá⌐½á. Äñ¡á¬«, »ÑαÑñ óδσ«ñ«¼ ¿º Σπ¡¬µ¿¿ ∩ñα« πóѽ¿τ¿óáÑΓ º¡áτÑ¡¿∩
- ΓÑσ ßτÑΓτ¿¬«ó ó ¿¡ñѬßÑ, ¬«Γ«αδÑ »«¬áºδóáεΓ ¬«½¿τÑßΓó« »α«µÑßß«ó, «Γ¬αδóΦ¿σ
- »«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ ñ½∩ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿. Åα«µÑßß, «Γ¬αδóáεΘ¿⌐ »«¿¼Ñ¡«óá¡-
- ¡δ⌐ ¬á¡á½ ñ½∩ τΓÑ¡¿∩, »α¿«ßΓá¡«ó¿Γ ßó«Ñ óδ»«½¡Ñ¡¿Ñ ñ« ΓÑσ »«α, »«¬á ñαπú«⌐
- »α«µÑßß ¡Ñ «Γ¬α«ÑΓ »«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ ñ½∩ ºá»¿ß¿, ¿ ¡á«í«α«Γ. ìÑ ¿¼ÑÑΓ
- ß¼δß½á «Γ¬αδóáΓ∞ ¬á¡á½ ñ½∩ τΓÑ¡¿∩, Ñß½¿ »α«µÑßß ¡Ñ ¡áñÑÑΓß∩ »«½πτ¿Γ∞ ñá¡¡δÑ;
- Γ« ªÑ ßá¼«Ñ ¬áßáÑΓß∩ ºá»¿ß¿. é ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, «Γ¬αδóáÑΓ ½¿ »α«µÑßß »«-
- ¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ ñ½∩ ºá»¿ß¿ ¿½¿ ñ½∩ τΓÑ¡¿∩, ∩ñα« ó«º«í¡«ó½∩ÑΓ óδ»«½¡Ñ¡¿Ñ
- ΓÑσ »α«µÑßß«ó, ¬«Γ«αδÑ í뫨 »α¿«ßΓá¡«ó½Ñ¡δ ó «ª¿ñá¡¿¿ »α«µÑßßá, ºá»¿ßδóáεΘÑ-
- ú« ó »«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ ¿½¿ ßτ¿ΓδóáεΘÑú« ñá¡¡δÑ ¿º ¬á¡á½á (ß««ΓóÑΓßΓóÑ¡¡«).
- àß½¿ »α«µÑßß «Γ¬αδóáÑΓ »«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ ñ½∩ τΓÑ¡¿∩, »α¿τѼ »α«µÑßß,
- ºá»¿ßδóáεΘ¿⌐ ó ¬á¡á½, ßπΘÑßΓóπÑΓ, «Γ¬αδΓ¿Ñ ºáóÑαΦáÑΓß∩. 꽿 Ñß½¿ »α«µÑßß «Γ-
- ¬αδóáÑΓ »«¿¼Ñ¡«óá¡¡δ⌐ Σá⌐½ ß »áαá¼ÑΓα«¼ "no delay", Σπ¡¬µ¿∩ open ó«ºóαáΘáÑΓ
- π»αáó½Ñ¡¿Ñ ¡Ñ¼Ññ½Ñ¡¡«, ñáªÑ ¬«úñá ¡ÑΓ ¡¿ «ñ¡«ú« ºá»¿ßδóáεΘÑú« »α«µÑßßá. é«
- óßÑσ «ßΓá½∞¡δσ ß½πτá∩σ »α«µÑßß »α¿«ßΓá¡áó½¿óáÑΓß∩ ñ« ΓÑσ »«α, »«¬á ºá»¿ßδóá-
- εΘ¿⌐ »α«µÑßß ¡Ñ «Γ¬α«ÑΓ ¬á¡á½. ǡὫú¿τ¡δÑ »αáó¿½á ñÑ⌐ßΓóπεΓ ñ½∩ »α«µÑßßá,
- «Γ¬αδóáεΘÑú« ¬á¡á½ ñ½∩ ºá»¿ß¿.
-
-
- E5.12.3 ùΓÑ¡¿Ñ ¿º ¬á¡á½«ó ¿ ºá»¿ß∞ ó ¬á¡á½δF
-
- èá¡á½ ß½ÑñπÑΓ αáßß¼áΓα¿óáΓ∞ »«ñ Γᬿ¼ πú½«¼ ºαÑ¡¿∩, τΓ« »α«µÑßßδ óÑñπΓ
- ºá»¿ß∞ ¡á «ñ¡«¼ ¬«¡µÑ ¬á¡á½á, á ßτ¿ΓδóáεΓ ñá¡¡δÑ ¡á ñαπú«¼ ¬«¡µÑ. èᬠπªÑ
- ú«ó«α¿½«ß∞ óδΦÑ, »α«µÑßßδ «íαáΘáεΓß∩ ¬ ñá¡¡δ¼ ó ¬á¡á½Ñ ó »«α∩ñ¬Ñ ¿σ »«ßΓπ»-
- ½Ñ¡¿∩ ó ¬á¡á½; φΓ« «º¡áτáÑΓ, τΓ« «τÑαÑñ¡«ßΓ∞, ó ¬«Γ«α«⌐ ñá¡¡δÑ ºá»¿ßδóáεΓß∩
- ó ¬á¡á½, ß«ó»áñáÑΓ ß «τÑαÑñ¡«ßΓ∞ε ¿σ óδí«α¬¿ ¿º ¬á¡á½á. æ«ó»áñÑ¡¿Ñ ¬«½¿τÑßΓ-
- óá »α«µÑßß«ó, ßτ¿ΓδóáεΘ¿σ ñá¡¡δÑ ¿º ¬á¡á½á, ß ¬«½¿τÑßΓó«¼ »α«µÑßß«ó, óÑñπΘ¿σ
- ºá»¿ß∞ ó ¬á¡á½, ß«óßѼ ¡Ñ «í∩ºáΓѽ∞¡«; Ñß½¿ «ñ¡« τ¿ß½« «Γ½¿τáÑΓß∩ «Γ ñαπú«ú«
- í«½ÑÑ, τѼ ¡á 1, »α«µÑßßδ ñ«½ª¡δ ¬««αñ¿¡¿α«óáΓ∞ ßó«¿ ñÑ⌐ßΓó¿∩ »« ¿ß»«½∞º«óá-
- ¡¿ε ¬á¡á½á ß »«¼«Θ∞ε ñαπú¿σ ¼Ñσá¡¿º¼«ó. ƒñα« «íαáΘáÑΓß∩ ¬ ñá¡¡δ¼ ó ¬á¡á½Ñ
- Γ«τ¡« ΓᬠªÑ, ¬á¬ ¿ ¬ ñá¡¡δ¼ ó «íδτ¡«¼ Σá⌐½Ñ: «¡« ß«σαá¡∩ÑΓ ñá¡¡δÑ ¡á πßΓ-
- α«⌐ßΓóÑ ¬á¡á½á ¿ ¡áº¡áτáÑΓ ¬á¡á½π ßΓ«½∞¬« í½«¬«ó, ߬«½∞¬« ¡πª¡«, ó« óαѼ∩
- óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ write. Éẽ¿τ¿Ñ ó óδñѽѡ¿¿ »á¼∩Γ¿ ñ½∩ ¬á¡á½á ¿ ñ½∩
-
- ┌────────────────────┬────────────────────┐
- │ ô¬áºáΓѽ∞ τΓÑ¡¿∩ │ ô¬áºáΓѽ∞ ºá»¿ß¿ │
- └──────────┼─────────┴──────────┼─────────┘
- │ ┌────────────────┘
- └── │ ──────────────┐
- v v
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │
- └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
- ü½«¬¿ »α∩¼«⌐ áñαÑßᵿ¿ ó ¿¡ñѬßÑ
-
- É¿ßπ¡«¬ 5.17. ï«ú¿τÑ߬á∩ ßσѼá τΓÑ¡¿∩ ¿ ºá»¿ß¿ ó ¬á¡á½
-
- 106
-
- «íδτ¡«ú« Σá⌐½á ß«ßΓ«¿Γ ó Γ«¼, τΓ« ¬á¡á½ ¿ß»«½∞ºπÑΓ ó ¿¡ñѬßÑ Γ«½∞¬« í½«¬¿
- »α∩¼«⌐ áñαÑßᵿ¿ ó µÑ½∩σ »«óδΦÑ¡¿∩ φΣΣÑ¬Γ¿ó¡«ßΓ¿ αáí«Γδ, σ«Γ∩ φΓ« ¿ ¡á¬½áñδ-
- óáÑΓ «»αÑñѽѡ¡δÑ «úαá¡¿τÑ¡¿∩ ¡á «íΩѼ ñá¡¡δσ, «ñ¡«óαѼѡ¡« »«¼ÑΘáεΘ¿σß∩ ó
- ¬á¡á½Ñ. ƒñα« αáí«ΓáÑΓ ß í½«¬á¼¿ »α∩¼«⌐ áñαÑßᵿ¿ ¿¡ñѬßá ¬á¬ ß µ¿¬½¿τÑ߬«⌐
- «τÑαÑñ∞ε, »«ññÑনóá∩ ó ßó«Ñ⌐ ßΓαπ¬ΓπαÑ π¬áºáΓѽ¿ τΓÑ¡¿∩ ¿ ºá»¿ß¿ ñ½∩ «íÑß-
- »ÑτÑ¡¿∩ «τÑαÑñ¡«ßΓ¿ «íß½πª¿óá¡¿∩ "»Ñαóδ¼ »α¿Φѽ - »Ñαóδ¼ óδΦѽ" (É¿ßπ¡«¬
- 5.17).
- Éáßß¼«Γα¿¼ τÑΓδαÑ »α¿¼Ñαá óó«ñá-óδó«ñá ó ¬á¡á½: ºá»¿ß∞ ó ¬á¡á½, ó ¬«Γ«-
- α«¼ ÑßΓ∞ ¼ÑßΓ« ñ½∩ ºá»¿ß¿ ñá¡¡δσ; τΓÑ¡¿Ñ ¿º ¬á¡á½á, ó ¬«Γ«α«¼ ñ«ßΓáΓ«τ¡«
- ñá¡¡δσ ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩ ºá»α«ßá ¡á τΓÑ¡¿Ñ; τΓÑ¡¿Ñ ¿º ¬á¡á½á, ó ¬«Γ«α«¼
- ñá¡¡δσ ¡Ññ«ßΓáΓ«τ¡«; ¿ ºá»¿ß∞ ó ¬á¡á½, úñÑ ¡ÑΓ ¼ÑßΓá ñ½∩ ºá»¿ß¿.
- Éáßß¼«Γα¿¼ »Ñαóδ⌐ ß½πτá⌐, ó ¬«Γ«α«¼ »α«µÑßß óÑñÑΓ ºá»¿ß∞ ó ¬á¡á½, ¿¼Ñε-
- Θ¿⌐ ¼ÑßΓ« ñ½∩ óó«ñá ñá¡¡δσ: ßπ¼¼á ¬«½¿τÑßΓóá ºá»¿ßδóáѼδσ íá⌐Γ ß τ¿ß½«¼
- íá⌐Γ, πªÑ ¡áσ«ñ∩Θ¿σß∩ ó ¬á¡á½Ñ, ¼Ñ¡∞ΦÑ ¿½¿ αáó¡á Ѽ¬«ßΓ¿ ¬á¡á½á. ƒñα« ß½Ññπ-
- ÑΓ á½ú«α¿Γ¼π ºá»¿ß¿ ñá¡¡δσ ó «íδτ¡δ⌐ Σá⌐½, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« «¡« πóÑ-
- ½¿τ¿óáÑΓ αẼÑα ¬á¡á½á áóΓ«¼áΓ¿τÑ߬¿ »«ß½Ñ ¬áªñ«ú« óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ write,
- »«ß¬«½∞¬π »« «»αÑñѽѡ¿ε «íΩѼ ñá¡¡δσ ó ¬á¡á½Ñ αáßΓÑΓ ß ¬áªñ«⌐ «»ÑαᵿÑ⌐ ºá-
- »¿ß¿. ê¡áτÑ »α«¿ßσ«ñ¿Γ πóѽ¿τÑ¡¿Ñ αẼÑαá «íδτ¡«ú« Σá⌐½á: »α«µÑßß πóѽ¿τ¿óá-
- ÑΓ αẼÑα Σá⌐½á Γ«½∞¬« Γ«úñá, ¬«úñá «¡ »α¿ ºá»¿ß¿ ñá¡¡δσ »ÑαÑßΓπ»áÑΓ úαá¡¿µπ
- ¬«¡µá Σá⌐½á. àß½¿ ß½ÑñπεΘÑÑ ß¼ÑΘÑ¡¿Ñ ó ¬á¡á½Ñ ΓαÑíπÑΓ ¿ß»«½∞º«óá¡¿∩ í½«¬á
- ¬«ßóÑ¡¡«⌐ áñαÑßᵿ¿, ∩ñα« πßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ó »α«ßΓαá¡ßΓóÑ
- »α«µÑßßá Γᬿ¼ «íαẫ¼, τΓ«íδ «¡« π¬áºδóὫ ¡á ¡áτὫ ¬á¡á½á (ß¼ÑΘÑ¡¿Ñ ó
- íá⌐Γáσ, αáó¡«Ñ 0). ƒñα« ¡¿¬«úñá ¡Ñ ºáΓ¿αáÑΓ ñá¡¡δÑ ó ¬á¡á½Ñ; «¡« ¼«ªÑΓ ßíα«-
- ß¿Γ∞ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ó 0, »«ß¬«½∞¬π «¡« πªÑ πßΓᡫ󿽫, τΓ« ñá¡¡δÑ ¡Ñ íπ-
- ñπΓ »ÑαÑ»«½¡∩Γ∞ Ѽ¬«ßΓ∞ ¬á¡á½á. è«úñá »α«µÑßß ºá»¿ΦÑΓ ó ¬á¡á½ óßÑ ßó«¿ ñá¡-
- ¡δÑ, ∩ñα« «Γ¬«ααÑ¬Γ¿απÑΓ º¡áτÑ¡¿Ñ π¬áºáΓѽ∩ ºá»¿ß¿ (ó ¿¡ñѬßÑ) ¬á¡á½á Γᬿ¼
- «íαẫ¼, τΓ« ß½ÑñπεΘ¿⌐ »α«µÑßß »α«ñ«½ª¿Γ ºá»¿ß∞ ó ¬á¡á½ ß Γ«ú« ¼ÑßΓá, úñÑ
- «ßΓá¡«ó¿½áß∞ »αÑñδñπΘá∩ «»Ñαᵿ∩ write. çáΓѼ ∩ñα« ó«º«í¡«ó¿Γ óδ»«½¡Ñ¡¿Ñ
- óßÑσ ñαπú¿σ »α«µÑßß«ó, »α¿«ßΓá¡«ó½Ñ¡¡δσ ó «ª¿ñá¡¿¿ ßτ¿Γδóá¡¿∩ ñá¡¡δσ ¿º ¬á-
- ¡á½á.
- è«úñá »α«µÑßß ºá»π߬áÑΓ Σπ¡¬µ¿ε τΓÑ¡¿∩ ¿º ¬á¡á½á, «¡ »α«óÑα∩ÑΓ, »πßΓ«⌐
- ½¿ ¬á¡á½ ¿½¿ ¡ÑΓ. àß½¿ ó ¬á¡á½Ñ ÑßΓ∞ ñá¡¡δÑ, ∩ñα« ßτ¿ΓδóáÑΓ ¿σ ¿º ¬á¡á½á
- Γá¬, ¬á¬ Ñß½¿ íδ ¬á¡á½ íδ½ «íδτ¡δ¼ Σá⌐½«¼, óδ»«½¡∩∩ ß««ΓóÑΓßΓóπεΘ¿⌐ á½ú«-
- α¿Γ¼. Äñ¡á¬«, ¡áτá½∞¡δ¼ ß¼ÑΘÑ¡¿Ñ¼ íπñÑΓ º¡áτÑ¡¿Ñ π¬áºáΓѽ∩ τΓÑ¡¿∩, σαá¡∩ΘÑ-
- ú«ß∩ ó ¿¡ñѬßÑ ¿ »«¬áºδóáεΘÑú« »α«Γ∩ªÑ¡¡«ßΓ∞ »α«τ¿Γá¡¡δσ αá¡ÑÑ ñá¡¡δσ. ū߽Ñ
- ßτ¿Γδóá¡¿∩ ¬áªñ«ú« í½«¬á ∩ñα« π¼Ñ¡∞ΦáÑΓ αẼÑα ¬á¡á½á ó ß««ΓóÑΓßΓó¿¿ ß ¬«½¿-
- τÑßΓó«¼ ßτ¿Γá¡¡δσ ñá¡¡δσ ¿ πßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ó »α«ßΓαá¡ßΓóÑ
- »α«µÑßßá Γá¬, τΓ«íδ »α¿ ñ«ßΓ¿ªÑ¡¿¿ ¬«¡µá ¬á¡á½á «¡« π¬áºδóὫ ¡á Ñú« ¡áτὫ.
- è«úñá óδ»«½¡Ñ¡¿Ñ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ read ºáóÑαΦáÑΓß∩, ∩ñα« ó«º«í¡«ó½∩ÑΓ óδ-
- »«½¡Ñ¡¿Ñ óßÑσ »α¿«ßΓá¡«ó½Ñ¡¡δσ »α«µÑßß«ó ºá»¿ß¿ ¿ ºá»«¼¿¡áÑΓ ΓѬπΘÑÑ º¡áτÑ-
- ¡¿Ñ π¬áºáΓѽ∩ τΓÑ¡¿∩ ó ¿¡ñѬßÑ (á ¡Ñ ó ºá»¿ß¿ Γáí½¿µδ Σá⌐½«ó).
- àß½¿ »α«µÑßß »δΓáÑΓß∩ ßτ¿ΓáΓ∞ í«½∞ΦÑ ¿¡Σ«α¼áµ¿¿, τѼ Σá¬Γ¿τÑ߬¿ ÑßΓ∞ ó
- ¬á¡á½Ñ, Σπ¡¬µ¿∩ read ºáóÑαΦ¿Γß∩ πß»ÑΦ¡«, ó«ºóαáΓ¿ó óßÑ ñá¡¡δÑ, ¡áσ«ñ∩Θ¿Ñß∩ ó
- ñá¡¡δ⌐ ¼«¼Ñ¡Γ ó ¬á¡á½Ñ, »πßΓ∞ ñáªÑ ¡Ñ »«½¡«ßΓ∞ε óδ»«½¡¿ó ºá»α«ß »«½∞º«óáΓÑ-
- ½∩. àß½¿ ¬á¡á½ »πßΓ, »α«µÑßß «íδτ¡« »α¿«ßΓá¡áó½¿óáÑΓß∩ ñ« ΓÑσ »«α, »«¬á ¬á-
- ¬«⌐-¡¿íπñ∞ ñαπú«⌐ »α«µÑßß ¡Ñ ºá»¿ΦÑΓ ñá¡¡δÑ ó ¬á¡á½, »«ß½Ñ τÑú« óßÑ »α¿«ßΓá-
- ¡«ó½Ñ¡¡δÑ »α«µÑßßδ, «ª¿ñáεΘ¿Ñ óó«ñá ñá¡¡δσ, ó«º«í¡«ó∩Γ ßó«Ñ óδ»«½¡Ñ¡¿Ñ ¿
- ¡áτ¡πΓ ¬«¡¬πα¿α«óáΓ∞ ºá τΓÑ¡¿Ñ ¿º ¬á¡á½á. àß½¿, «ñ¡á¬«, »α«µÑßß «Γ¬αδóáÑΓ
- »«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ ß »áαá¼ÑΓα«¼ "no delay" (íѺ ºáñÑ᪬¿), Σπ¡¬µ¿∩ read
- ó«ºóαáΓ¿Γ π»αáó½Ñ¡¿Ñ ¡Ñ¼Ññ½Ñ¡¡«, Ñß½¿ ó ¬á¡á½Ñ «ΓßπΓßΓóπεΓ ñá¡¡δÑ. Ä»Ñαᵿ¿
- τΓÑ¡¿∩ ¿ ºá»¿ß¿ ó ¬á¡á½ ¿¼ÑεΓ Γπ ªÑ ßѼá¡Γ¿¬π, τΓ« ¿ á¡á½«ú¿τ¡δÑ «»Ñαᵿ¿
- ñ½∩ ΓÑନ¡á½∞¡δσ πßΓα«⌐ßΓó (ú½áóá 10), «¡á »«ºó«½∩ÑΓ »α«µÑßßá¼ ¿ú¡«α¿α«óáΓ∞
- Γ¿» ΓÑσ Σá⌐½«ó, ß ¬«Γ«α묨 φΓ¿ »α«úαá¼¼δ ¿¼ÑεΓ ñѽ«.
- àß½¿ »α«µÑßß óÑñÑΓ ºá»¿ß∞ ó ¬á¡á½ ¿ ó ¬á¡á½Ñ ¡ÑΓ ¼ÑßΓá ñ½∩ óßÑσ ñá¡¡δσ,
- ∩ñα« »«¼ÑτáÑΓ ¿¡ñÑ¬ß ¿ »α¿«ßΓá¡áó½¿óáÑΓ óδ»«½¡Ñ¡¿Ñ »α«µÑßßá ñ« ΓÑσ »«α, »«¬á
- ¬á¡á½ ¡Ñ ¡áτ¡ÑΓ «τ¿ΘáΓ∞ß∩ «Γ ñá¡¡δσ. è«úñá ó»«ß½ÑñßΓó¿¿ ñαπú«⌐ »α«µÑßß íπñÑΓ
- ßτ¿ΓδóáΓ∞ ñá¡¡δÑ ¿º ¬á¡á½á, ∩ñα« ºá¼ÑΓ¿Γ ßπΘÑßΓó«óá¡¿Ñ »α«µÑßß«ó, »α¿«ßΓá-
- ¡«ó½Ñ¡¡δσ ó «ª¿ñá¡¿¿ «τ¿ßΓ¬¿ ¬á¡á½á, ¿ ó«º«í¡«ó¿Γ ¿σ óδ»«½¡Ñ¡¿Ñ »«ñ«í¡« Γ«-
- ¼π, ¬á¬ φΓ« í佫 «íΩ∩ߡѡ« óδΦÑ. ê߬½ετÑ¡¿Ñ¼ ¿º φΓ«ú« πΓóÑαªñÑ¡¿∩ ∩ó½∩ÑΓß∩
-
- 107
-
- ß¿Γπᵿ∩, ¬«úñá »α«µÑßß ºá»¿ßδóáÑΓ ó ¬á¡á½ ñá¡¡δÑ, «íΩѼ ¬«Γ«αδσ »αÑóδΦáÑΓ
- Ѽ¬«ßΓ∞ ¬á¡á½á (Γ« ÑßΓ∞, «íΩѼ ñá¡¡δσ, ¬«Γ«αδÑ ¼«úπΓ σαá¡¿Γ∞ß∩ ó í½«¬áσ »α∩-
- ¼«⌐ áñαÑßᵿ¿); ó φΓ«¼ ß½πτáÑ ∩ñα« ºá»¿ßδóáÑΓ ó ¬á¡á½ ßΓ«½∞¬« ñá¡¡δσ, ߬«½∞-
- ¬« «¡ ¼«ªÑΓ ó¼ÑßΓ¿Γ∞ ó ßÑí∩, ¿ »α¿«ßΓá¡áó½¿óáÑΓ »α«µÑßß ñ« ΓÑσ »«α, »«¬á ¡Ñ
- «ßó«í«ñ¿Γß∩ ñ«»«½¡¿Γѽ∞¡«Ñ ¼ÑßΓ«. Æá¬¿¼ «íαẫ¼, 󫺼«ª¡« »«½«ªÑ¡¿Ñ, »α¿ ¬«-
- Γ«α«¼ ºá»¿ßδóáѼδÑ ñá¡¡δÑ ¡Ñ íπñπΓ ºá¡¿¼áΓ∞ ¡Ñ»αÑαδó¡«Ñ ¼ÑßΓ« ó ¬á¡á½Ñ, Ñß½¿
- ñαπú¿Ñ »α«µÑßßδ óÑñπΓ ºá»¿ß∞ ó ¬á¡á½ ó Γ« óαѼ∩, ¡á ¬«Γ«α«Ñ »Ñαóδ⌐ »α«µÑßß
- »αÑαóá½ ßó«ε αáí«Γπ.
- ǡ὿º¿απ∩ αÑ὿ºáµ¿ε ¬á¡á½«ó, ¼«ª¡« ºá¼ÑΓ¿Γ∞, τΓ« ¿¡ΓÑαΣÑ⌐ß »α«µÑßß«ó
- ß«ú½áßπÑΓß∩ ß ¿¡ΓÑαΣÑ⌐ß«¼ «íδτ¡δσ Σá⌐½«ó, ¡« Ñú« ó«»½«ΘÑ¡¿Ñ «Γ½¿τáÑΓß∩, Γá¬
- ¬á¬ ∩ñα« ºá»«¼¿¡áÑΓ ß¼ÑΘÑ¡¿∩ ñ½∩ τΓÑ¡¿∩ ¿ ºá»¿ß¿ ó ¿¡ñѬßÑ ó¼ÑßΓ« Γ«ú«, τΓ«-
- íδ ñѽáΓ∞ φΓ« ó Γáí½¿µÑ Σá⌐½«ó. ƒñα« óδ¡πªñÑ¡« σαá¡¿Γ∞ º¡áτÑ¡¿∩ ß¼ÑΘÑ¡¿⌐ ñ½∩
- »«¿¼Ñ¡«óá¡¡δσ ¬á¡á½«ó ó ¿¡ñѬßÑ ñ½∩ Γ«ú«, τΓ«íδ »α«µÑßßδ ¼«ú½¿ ß«ó¼ÑßΓ¡« ¿ß-
- »«½∞º«óáΓ∞ φΓ¿ º¡áτÑ¡¿∩: «¡¿ ¡Ñ ¼«ú½¿ íδ ß«ó¼ÑßΓ¡« ¿ß»«½∞º«óáΓ∞ º¡áτÑ¡¿∩,
- σαá¡∩Θ¿Ñß∩ ó Γáí½¿µÑ Σá⌐½«ó, Γᬠ¬á¬ »α«µÑßß »«½πτáÑΓ ¡«óπε ºá»¿ß∞ ó Γáí½¿µÑ
- Σá⌐½«ó »« ¬áªñ«¼π ó맮óπ Σπ¡¬µ¿¿ open. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ, ß«ó¼ÑßΓ¡«Ñ ¿ß»«½∞º«óá-
- ¡¿Ñ ß¼ÑΘÑ¡¿⌐ τΓÑ¡¿∩ ¿ ºá»¿ß¿ ó ¿¡ñѬßÑ ¡áí½εñὫß∞ ¿ ñ« αÑ὿ºáµ¿¿ »«¿¼Ñ¡«-
- óá¡¡δσ ¬á¡á½«ó. Åα«µÑßßδ, «íαáΘáεΘ¿Ñß∩ ¬ ¡Ñ»«¿¼Ñ¡«óá¡¡δ¼ ¬á¡á½á¼, αáºñѽ∩εΓ
- ñ«ßΓπ» ¬ ¬á¡á½π τÑαѺ «íΘ¿Ñ Γ«τ¬¿ óσ«ñá ó Γáí½¿µπ Σá⌐½«ó, »«φΓ«¼π «¡¿ ¼«ú½¿
- íδ »« π¼«½τá¡¿ε σαá¡¿Γ∞ ß¼ÑΘÑ¡¿∩ ºá»¿ß¿ ¿ τΓÑ¡¿∩ ó Γáí½¿µÑ Σá⌐½«ó, ¬á¬ φΓ«
- »α¿¡∩Γ« ñ½∩ «íδτ¡δσ Σá⌐½«ó. ¥Γ« ¡Ñ í佫 ßñѽᡫ, Γᬠ¬á¬ »α«µÑñπαδ ¡¿º¬«ú«
- πα«ó¡∩, αáí«ΓáεΘ¿Ñ ó ∩ñαÑ, í«½∞ΦÑ ¡Ñ ¿¼ÑεΓ ñ«ßΓπ»á ¬ ºá»¿ß∩¼ ó Γáí½¿µÑ Σá⌐-
- ½«ó: »α«úαá¼¼á π»α«ßΓ¿½áß∞ ºá ßτÑΓ Γ«ú«, τΓ« »α«µÑßßδ ß«ó¼ÑßΓ¡« ¿ß»«½∞ºπεΓ
- º¡áτÑ¡¿∩ ß¼ÑΘÑ¡¿⌐, σαá¡∩Θ¿Ñß∩ ó ¿¡ñѬßÑ.
-
-
- .te1 E5.12.4 çá¬αδΓ¿Ñ ¬á¡á½«óF
-
- Åα¿ ºá¬αδΓ¿¿ ¬á¡á½á »α«µÑßß óδ»«½¡∩ÑΓ Γπ ªÑ ßá¼πε »α«µÑñπαπ, τΓ« ¿ »α¿
- ºá¬αδΓ¿¿ «íδτ¡«ú« Σá⌐½á, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« ∩ñα«, »αѪñÑ τѼ «ßó«í«-
- ñ¿Γ∞ ¿¡ñÑ¬ß ¬á¡á½á, óδ»«½¡∩ÑΓ ß»Ñµ¿á½∞¡πε «íαáí«Γ¬π. Ä¡« π¼Ñ¡∞ΦáÑΓ ¬«½¿τÑßΓ-
- ó« »α«µÑßß«ó τΓÑ¡¿∩ ¿º ¬á¡á½á ¿½¿ ºá»¿ß¿ ó ¬á¡á½ ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ¿»á Σá⌐-
- ½«ó«ú« ñÑß¬α¿»Γ«αá. àß½¿ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á τ¿ß½á ºá»¿ßδóáεΘ¿σ ó ¬á¡á½ »α«-
- µÑßß«ó ßΓá¡«ó¿Γß∩ αáó¡δ¼ 0 ¿ ¿¼ÑεΓß∩ »α«µÑßßδ, »α¿«ßΓá¡«ó½Ñ¡¡δÑ ó «ª¿ñá¡¿¿
- τΓÑ¡¿∩ ñá¡¡δσ ¿º ¬á¡á½á, ∩ñα« ó«º«í¡«ó½∩ÑΓ óδ»«½¡Ñ¡¿Ñ »«ß½Ññ¡¿σ ¿ «¡¿ ºáóÑα-
- ΦáεΓ ßó«¿ «»Ñαᵿ¿ τΓÑ¡¿∩ íѺ ó«ºóαáΓá ¬á¬¿σ-½¿í« ñá¡¡δσ. àß½¿ ßΓá¡«ó¿Γß∩
- αáó¡δ¼ 0 º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á τ¿ß½á ßτ¿ΓδóáεΘ¿σ ¿º ¬á¡á½á »α«µÑßß«ó ¿ ¿¼ÑεΓß∩
- »α«µÑßßδ, »α¿«ßΓá¡«ó½Ñ¡¡δÑ ó «ª¿ñá¡¿¿ 󫺼«ª¡«ßΓ¿ ºá»¿ß¿ ñá¡¡δσ ó ¬á¡á½, ∩ñ-
- α« ó«º«í¡«ó½∩ÑΓ óδ»«½¡Ñ¡¿Ñ »«ß½Ññ¡¿σ ¿ »«ßδ½áÑΓ ¿¼ ß¿ú¡á½ (ú½áóá 7) «í «Φ¿í-
- ¬Ñ. é «í«¿σ ß½πτá∩σ ¡Ñ ¿¼ÑÑΓ ß¼δß½á »α«ñ«½ªáΓ∞ ñÑαªáΓ∞ »α«µÑßßδ »α¿«ßΓá¡«ó-
- ½Ñ¡¡δ¼¿, Ñß½¿ ¡ÑΓ ¡áñѪñδ ¡á Γ«, τΓ« ß«ßΓ«∩¡¿Ñ ¬á¡á½á ¬«úñá-¡¿íπñ∞ ¿º¼Ñ¡¿Γ-
- ß∩. ìá»α¿¼Ñα, Ñß½¿ »α«µÑßß «ª¿ñáÑΓ ó«º¼«ª¡«ßΓ¿ »α«¿ºó«ñ¿Γ∞ τΓÑ¡¿Ñ ¿º ¡Ñ»«¿-
- ¼Ñ¡«óá¡¡«ú« ¬á¡á½á ¿ ó ß¿ßΓÑ¼Ñ í«½∞ΦÑ ¡ÑΓ »α«µÑßß«ó, ºá»¿ßδóáεΘ¿σ ó φëà ¬á-
- ¡á½, º¡áτ¿Γ, ºá»¿ßδóáεΘ¿⌐ »α«µÑßß ¡¿¬«úñá ¡Ñ »«∩ó¿Γß∩. ìÑß¼«Γα∩ ¡á Γ«, τΓ«
- Ñß½¿ ¬á¡á½ »«¿¼Ñ¡«óá¡¡δ⌐, ó »α¿¡µ¿»Ñ 󫺼«ª¡« »«∩ó½Ñ¡¿Ñ ¡«ó«ú« ßτ¿ΓδóáεΘÑú«
- ¿½¿ ºá»¿ßδóáεΘÑú« »α«µÑßßá, ∩ñα« Γαá¬ΓπÑΓ φΓπ ß¿Γπᵿε Γ«τ¡« ΓᬠªÑ, ¬á¬ ¿
- ñ½∩ ¡Ñ»«¿¼Ñ¡«óá¡¡δσ ¬á¡á½«ó. àß½¿ ¬ ¬á¡á½π ¡Ñ «íαáΘáÑΓß∩ ¡¿ «ñ¿¡ ºá»¿ßδóáε-
- Θ¿⌐ ¿½¿ ßτ¿ΓδóáεΘ¿⌐ »α«µÑßß, ∩ñα« «ßó«í«ªñáÑΓ óßÑ ¿¡Σ«α¼áµ¿«¡¡δÑ í½«¬¿ ¬á¡á-
- ½á ¿ »ÑαÑπßΓá¡áó½¿óáÑΓ ¿¡ñÑ¬ß Γᬿ¼ «íαẫ¼, τΓ«íδ «¡ π¬áºδóá½ ¡á Γ«, τΓ«
- ¬á¡á½ »πßΓ. è«úñá ∩ñα« «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß «íδτ¡«ú« ¬á¡á½á, «¡« «ßó«í«ªñáÑΓ
- ñ½∩ »ÑαѡạáτÑ¡¿∩ ¿ ñ¿ß¬«óπε ¬«»¿ε φΓ«ú« ¿¡ñѬßá.
-
-
-
- E5.12.5 Åα¿¼ÑαδF
-
- Åα«úαá¼¼á ¡á É¿ßπ¡¬Ñ 5.18 ¿½½εßΓα¿απÑΓ ¿ß¬πßßΓóÑ¡¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ¬á¡á-
- ½«ó. Åα«µÑßß ß«ºñáÑΓ ¬á¡á½ ¿ óσ«ñ¿Γ ó íÑ߬«¡Ñτ¡δ⌐ µ¿¬½, ºá»¿ßδóá∩ ó ¬á¡á½
-
-
- 108
-
- ┌─────────────────────────────────┐
- │ char string[] = "hello"; │
- │ main() │
- │ { │
- │ char buf[1024]; │
- │ char *cp1,*cp2; │
- │ int fds[2]; │
- │ │
- │ cp1 = string; │
- │ cp2 = buf; │
- │ while(*cp1) │
- │ *cp2++ = *cp1++; │
- │ pipe(fds); │
- │ for (;;) │
- │ { │
- │ write(fds[1],buf,6); │
- │ read(fds[0],buf,6); │
- │ } │
- │ } │
- └─────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.18. ùΓÑ¡¿Ñ ¿º ¬á¡á½á ¿ ºá»¿ß∞ ó ¬á¡á½
-
-
-
- ßΓ᫬π ß¿¼ó«½«ó "hello" ¿ ßτ¿Γδóá∩ ÑÑ ¿º ¬á¡á½á. ƒñαπ ¡Ñ ¡πª¡« ¡¿ º¡áΓ∞ «
- Γ«¼, τΓ« »α«µÑßß, óÑñπΘ¿⌐ ºá»¿ß∞ ó ¬á¡á½, ∩ó½∩ÑΓß∩ ¿ »α«µÑßß«¼, ßτ¿ΓδóáεΘ¿¼
- ¿º ¬á¡á½á, ¡¿ »α«∩ó½∩Γ∞ »« φΓ«¼π »«ó«ñπ ¬á¬«Ñ-½¿í« íÑß»«¬«⌐ßΓó«.
- Åα«µÑßß, óδ»«½¡∩εΘ¿⌐ »α«úαá¼¼π, ¬«Γ«αá∩ »α¿óÑñÑ¡á ¡á É¿ßπ¡¬Ñ 5.19, ß«º-
- ñáÑΓ »«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ ß ¿¼Ñ¡Ñ¼ "fifo". àß½¿ φëà »α«µÑßß ºá»πΘÑ¡ ß π¬áºá-
- ¡¿Ñ¼ óΓ«α«ú« (Σ«α¼á½∞¡«ú«) áαúπ¼Ñ¡Γá, «¡ »«ß-
-
- ┌────────────────────────────────────────────────────────────┐
- │ #include <fcntl.h> │
- │ char string[] = "hello"; │
- │ main(argc,argv) │
- │ int argc; │
- │ char *argv[]; │
- │ { │
- │ int fd; │
- │ char buf[256]; │
- │ │
- │ /* ß«ºñá¡¿Ñ »«¿¼Ñ¡«óá¡¡«ú« ¬á¡á½á ß αáºαÑΦÑ¡¿Ñ¼ τΓÑ¡¿∩ ¿ │
- │ ºá»¿ß¿ ñ½∩ óßÑσ »«½∞º«óáΓѽÑ⌐ */ │
- │ mknod("fifo",010777,0); │
- │ if(argc == 2) │
- │ fd = open("fifo",O_WRONLY); │
- │ else │
- │ fd = open("fifo",O_RDONLY); │
- │ for (;;) │
- │ if(argc == 2) │
- │ write(fd,string,6); │
- │ else │
- │ read(fd,buf,6); │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.19. ùΓÑ¡¿Ñ ¿ ºá»¿ß∞ ó »«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½
-
-
- 109
-
- Γ«∩¡¡« ºá»¿ßδóáÑΓ ó ¬á¡á½ ßΓ᫬π ß¿¼ó«½«ó "hello"; íπñπτ¿ ºá»πΘÑ¡ íѺ óΓ«α«-
- ú« áαúπ¼Ñ¡Γá, «¡ óÑñÑΓ τΓÑ¡¿Ñ ¿º »«¿¼Ñ¡«óá¡¡«ú« ¬á¡á½á. äóá »α«µÑßßá ºá»πß-
- ¬áεΓß∩ »« «ñ¡«⌐ ¿ Γ«⌐ ªÑ »α«úαá¼¼Ñ, Γá⌐¡« ñ«ú«ó«α¿óΦ¿ß∞ óºá¿¼«ñÑ⌐ßΓó«óáΓ∞
- ¼Ñªñπ ß«í«⌐ τÑαѺ »«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ "fifo", ¡« ¿¼ ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ íδΓ∞
- α«ñßΓóÑ¡¡δ¼¿ »α«µÑßßἿ. äαπú¿Ñ »«½∞º«óáΓѽ¿ ¼«úπΓ óδ»«½¡∩Γ∞ »α«úαá¼¼π ¿
- πτáßΓó«óáΓ∞ ó ñ¿á½«úÑ (¿½¿ ¼ÑΦáΓ∞ Ѽπ).
-
-
- E5.13 DUPF
-
- æ¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ dup ¬«»¿απÑΓ ñÑß¬α¿»Γ«α Σá⌐½á ó »Ñαó«Ñ ßó«í«ñ¡«Ñ ¼ÑßΓ«
- ó Γáí½¿µÑ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½á, ó«ºóαáΘá∩ ¡«óδ⌐ ñÑß¬α¿»Γ«α
- »«½∞º«óáΓѽε. Ä¡á ñÑ⌐ßΓóπÑΓ ñ½∩ óßÑσ Γ¿»«ó Σá⌐½á. æ¿¡Γá¬ß¿ß ó맮óá Σπ¡¬µ¿¿:
-
- newfd = dup(fd);
-
- úñÑ fd - ñÑß¬α¿»Γ«α Σá⌐½á, ¬«»¿απѼδ⌐ Σπ¡¬µ¿Ñ⌐, á newfd - ¡«óδ⌐ ñÑß¬α¿»Γ«α,
- ßßδ½áεΘ¿⌐ß∩ ¡á Σá⌐½. ū߬«½∞¬π Σπ¡¬µ¿∩ dup ñπí½¿απÑΓ ñÑß¬α¿»Γ«α Σá⌐½á, «¡á
- πóѽ¿τ¿óáÑΓ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ó ß««ΓóÑΓßΓóπεΘÑ⌐ ºá»¿ß¿ Γáí½¿µδ Σá⌐½«ó - ºá-
-
- Γáí½¿µá »«½∞º«óá-
- Γѽ∞߬¿σ ñÑß¬α¿»-
- Γ«α«ó Σá⌐½á Γáí½¿µá Σá⌐½«ó Γáí½¿µá ¿¡ñѬ߫ó
- ┌─────────┐ ┌────────────┐ ┌──────────────┐
- 0│ ────┼────┐ │ │ │ ∙ │
- ├─────────┤ │ │ │ │ ∙ │
- 1│ ────┼───┐└──>│ │ │ ∙ │
- ├─────────┤ │ ├────────────┤ │ ∙ │
- 2│ ────┼──┐└───>│ ∙ │ │ ∙ │
- ├─────────┤ └────>│ ∙ │ │ ∙ │
- 3│ ────┼────┐ │ ∙ │ │ ∙ │
- ├─────────┤ │ │ ∙ │ ├──────────────┤
- 4│ ────┼───┐│ │ ∙ │ ┌────>│ ßτÑΓ- │
- ├─────────┤ ││ │ ∙ │ │ │ τ¿¬ (/etc/ │
- 5│ ────┼──┐││ ├────────────┤ │ ┌──>│ 2 passwd)│
- ├─────────┤ │││ │ ßτÑΓ- │ │ │ ├──────────────┤
- 6│ ────┼┐ ││└──>│ τ¿¬ ┼──┘ │ │ ∙ │
- ├─────────┤└─││───>│ 2 │ │ │ ∙ │
- 7│ │ ││ ├────────────┤ │ │ ∙ │
- ├─────────┤ ││ │ ∙ │ │ │ ∙ │
- │ ∙ │ ││ ├────────────┤ │ │ ∙ │
- └─────────┘ ││ │ ßτÑΓτ¿¬ │ │ │ ∙ │
- │└───>│ 1 ┼────│┐ │ ∙ │
- │ ├────────────┤ ││ │ ∙ │
- │ │ ∙ │ ││ ├──────────────┤
- │ │ ∙ │ ││ │ ßτÑΓ- │
- │ │ ∙ │ │└─>│ τ¿¬ (local)│
- │ │ ∙ │ │ │ 1 │
- │ │ ∙ │ │ ├──────────────┤
- │ ├────────────┤ │ │ ∙ │
- │ │ ßτÑΓτ¿¬ │ │ │ ∙ │
- └────>│ 1 ┼────┘ │ ∙ │
- ├────────────┤ │ ∙ │
- │ ∙ │ └──────────────┘
- │ ∙ │
- └────────────┘
-
- É¿ßπ¡«¬ 5.20. æΓαπ¬Γπαδ ñá¡¡δσ »«ß½Ñ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ dup
-
-
- 110
-
-
- »¿ß¿, ¡á ¬«Γ«απε π¬áºδóáεΓ ßó∩ºá¡¡δÑ ß ¡Ñ⌐ Γ«τ¬¿ óσ«ñá ó Γáí½¿µÑ Σá⌐½«óδσ
- ñÑß¬α¿»Γ«α«ó, ¬«Γ«αδσ ΓÑ»Ñα∞ ßΓὫ ¡á «ñ¡π í«½∞ΦÑ. ìá»α¿¼Ñα, «íº«α ßΓαπ¬Γπα
- ñá¡¡δσ, ¿º«íαáªÑ¡¡δσ ¡á É¿ßπ¡¬Ñ 5.20, »«¬áºδóáÑΓ, τΓ« »α«µÑßß óδºδóáÑΓ ß½Ñ-
- ñπεΘπε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ Σπ¡¬µ¿⌐: «¡ «Γ¬αδóáÑΓ (open) Σá⌐½ ß ¿¼Ñ¡Ñ¼
- "/etc/passwd" (Σá⌐½«óδ⌐ ñÑß¬α¿»Γ«α 3), ºáΓѼ «Γ¬αδóáÑΓ Σá⌐½ ß ¿¼Ñ¡Ñ¼ "local"
- (Σá⌐½«óδ⌐ ñÑß¬α¿»Γ«α 4), ß¡«óá Σá⌐½ ß ¿¼Ñ¡Ñ¼ "/etc/passwd" (Σá⌐½«óδ⌐ ñÑ߬-
- α¿»Γ«α 5) ¿, ¡á¬«¡Ñµ, ñπí½¿απÑΓ (dup) Σá⌐½«óδ⌐ ñÑß¬α¿»Γ«α 3, ó«ºóαáΘá∩ ñÑ߬-
- α¿»Γ«α 6.
- 髺¼«ª¡«, dup - Σπ¡¬µ¿∩, ¡Ñ «Γ½¿τáεΘá∩ß∩ ¿º∩ΘÑßΓó«¼, »«ß¬«½∞¬π «¡á »αÑñ-
- »«½áúáÑΓ, τΓ« »«½∞º«óáΓѽ∞ º¡áÑΓ « Γ«¼, τΓ« ß¿ßΓѼá ó«ºóαáΓ¿Γ ßó«í«ñ¡πε Γ«τ-
- ¬π óσ«ñá ó Γáí½¿µÑ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó, ¿¼ÑεΘπε ¡á¿¼Ñ¡∞Φ¿⌐ ¡«¼Ñα.
- Äñ¡á¬«, «¡á ß½πª¿Γ ó᪡«⌐ ºáñáτÑ ¬«¡ßΓαπ¿α«óá¡¿∩ ß½«ª¡δσ »α«úαá¼¼ ¿º í«½ÑÑ
- »α«ßΓδσ ¬«¡ßΓαπ¬µ¿«¡¡δσ í½«¬«ó, τΓ«, ó τáßΓ¡«ßΓ¿, ¿¼ÑÑΓ ¼ÑßΓ« »α¿ ß«ºñá¡¿¿
- ¬«¡óÑ⌐Ñα«ó, ß«ßΓáó½Ñ¡¡δσ ¿º ¬«¼á¡ñ¡δσ »α«µÑßß«α«ó.
- Éáßß¼«Γα¿¼ »α«úαá¼¼π, »α¿óÑñÑ¡¡πε ¡á É¿ßπ¡¬Ñ 5.21. é »ÑαѼѡ¡«⌐ i σαá-
- ¡¿Γß∩ ñÑß¬α¿»Γ«α Σá⌐½á, ó«ºóαáΘáѼδ⌐ ó αѺπ½∞ΓáΓÑ «Γ¬αδΓ¿∩ Σá⌐½á
- "/etc/passwd", á ó »ÑαѼѡ¡«⌐ j - ñÑß¬α¿»Γ«α Σá⌐½á, ó«ºóαáΘáѼδ⌐ ß¿ßΓѼ«⌐ ó
- αѺπ½∞ΓáΓÑ ñπí½¿α«óá¡¿∩ ñÑß¬α¿»Γ«αá i ß »«¼«Θ∞ε Σπ¡¬µ¿¿ dup. é áñαÑß¡«¼
- »α«ßΓαá¡ßΓóÑ »α«µÑßßá «íá »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«αá, »αÑñßΓáó½Ñ¡¡δÑ »ÑαÑ-
- ¼Ñ¡¡δ¼¿ i ¿ j, ßßδ½áεΓß∩ ¡á «ñ¡π ¿ Γπ ªÑ ºá»¿ß∞ ó Γáí½¿µÑ Σá⌐½«ó ¿ »«φΓ«¼π
- ¿ß»«½∞ºπεΓ «ñ¡« ¿ Γ« ªÑ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ ó¡πΓα¿ Σá⌐½á. Æá¬¿¼ «íαẫ¼, »Ñα-
- óδÑ ñóá ó맮óá »α«µÑßß«¼ Σπ¡¬µ¿¿ read αÑ὿ºπεΓ »«ß½Ññ«óáΓѽ∞¡«Ñ ßτ¿Γδóá¡¿Ñ
- ñá¡¡δσ, ¿ ó íπΣÑαáσ buf1 ¿ buf2 íπñπΓ αáß»«½áúáΓ∞ß∩ αạδÑ ñá¡¡δÑ. æ«óßѼ
- ñαπú«⌐ αѺπ½∞ΓáΓ »«½πτáÑΓß∩, ¬«úñá »α«µÑßß
-
- ┌────────────────────────────────────────────────────────┐
- │ #include <fcntl.h> │
- │ main() │
- │ { │
- │ int i,j; │
- │ char buf1[512],buf2[512]; │
- │ │
- │ i = open("/etc/passwd",O_RDONLY); │
- │ j = dup(i); │
- │ read(i,buf1,sizeof(buf1)); │
- │ read(j,buf2,sizeof(buf2)); │
- │ close(i); │
- │ read(j,buf2,sizeof(buf2)); │
- │ } │
- └────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.21. Åα«úαá¼¼á ¡á ∩ºδ¬Ñ æ¿, ¿½½εßΓα¿απεΘá∩ ¿ß»«½∞º«-
- óá¡¿Ñ Σπ¡¬µ¿¿ dup
-
-
- «Γ¬αδóáÑΓ «ñ¿¡ ¿ ëà ªÑ Σá⌐½ ñóáªñδ ¿ τ¿ΓáÑΓ ñóáªñδ «ñ¡¿ ¿ ΓÑ ªÑ ñá¡¡δÑ
- (αáºñѽ 5.2). Åα«µÑßß ¼«ªÑΓ «ßó«í«ñ¿Γ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ close ½εí«⌐ ¿º Σá⌐-
- ½«óδσ ñÑß¬α¿»Γ«α«ó »« ßó«Ñ¼π ªÑ½á¡¿ε, ¿ óó«ñ-óδó«ñ »«½πτ¿Γ ¡«α¼á½∞¡«Ñ »α«-
- ñ«½ªÑ¡¿Ñ »« ñαπú«¼π ñÑß¬α¿»Γ«απ, ¬á¬ »«¬áºá¡« ¡á »α¿¼ÑαÑ. é τáßΓ¡«ßΓ¿, »α«-
- µÑßß ¼«ªÑΓ "ºá¬αδΓ∞" ñÑß¬α¿»Γ«α Σá⌐½á ßΓá¡ñáαΓ¡«ú« óδó«ñá (Σá⌐½«óδ⌐ ñÑß¬α¿»-
- Γ«α 1), ß¡∩Γ∞ ß ¡Ñú« ¬«»¿ε, ¿¼ÑεΘπε Γ« ªÑ º¡áτÑ¡¿Ñ, ¿ ºáΓѼ αáßß¼áΓα¿óáΓ∞
- ¡«óδ⌐ Σá⌐½ ó ¬áτÑßΓóÑ Σá⌐½á ßΓá¡ñáαΓ¡«ú« óδó«ñá. é ú½áóÑ 7 íπñÑΓ »αÑñßΓáó½Ñ¡
- í«½ÑÑ αÑ὿ßΓ¿τÑ߬¿⌐ »α¿¼Ñα ¿ß»«½∞º«óá¡¿∩ Σπ¡¬µ¿⌐ pipe ¿ dup »α¿ «»¿ßá¡¿¿
- «ß«íÑ¡¡«ßΓÑ⌐ αÑ὿ºáµ¿¿ ¬«¼á¡ñ¡«ú« »α«µÑßß«αá.
-
-
-
-
-
- 111
-
- E5.14 îÄìÆêÉÄéÇìêà ê äàîÄìÆêÉÄéÇìêà öÇëïÄé¢ò æêæÆàîF
-
- ö¿º¿τÑ߬¿⌐ ñ¿ß¬ ß«ßΓ«¿Γ ¿º ¡Ñ߬«½∞¬¿σ ½«ú¿τÑ߬¿σ αáºñѽ«ó, ¡á ¬«Γ«αδÑ «¡
- αáºí¿Γ ñ¿ß¬«óδ¼ ñαá⌐óÑα«¼, »α¿τѼ ¬áªñ«¼π αáºñѽπ ß««ΓóÑΓßΓóπÑΓ Σá⌐½ πßΓα«⌐-
- ßΓóá, ¿¼ÑεΘ¿⌐ «»αÑñѽѡ¡«Ñ ¿¼∩. Åα«µÑßßδ «íαáΘáεΓß∩ ¬ ñá¡¡δ¼ αáºñѽá, «Γ¬αδ-
- óá∩ ß««ΓóÑΓßΓóπεΘ¿⌐ Σá⌐½ πßΓα«⌐ßΓóá ¿ ºáΓѼ óÑñ∩ ºá»¿ß∞ ¿ τΓÑ¡¿Ñ ¿º φΓ«ú«
- "Σá⌐½á", »αÑñßΓáó½∩∩ Ñú« ßÑíÑ ó ó¿ñÑ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ñ¿ß¬«óδσ í½«¬«ó. ¥Γ«
- óºá¿¼«ñÑ⌐ßΓó¿Ñ ó« óßÑσ ñÑΓá½∩σ αáßß¼áΓα¿óáÑΓß∩ ó ú½áóÑ 10. Éáºñѽ ñ¿ß¬á ¼«-
- ªÑΓ ß«ñÑαªáΓ∞ ½«ú¿τÑ߬πε Σá⌐½«óπε ß¿ßΓѼπ, ß«ßΓ«∩Θπε ¿º í½«¬á ¡áτá½∞¡«⌐ ºáú-
- απº¬¿, ßπ»Ñαí½«¬á, ß»¿ß¬á ¿¡ñÑ¬ß«ó ¿ ¿¡Σ«α¼áµ¿«¡¡δσ í½«¬«ó (ß¼. ú½áóπ 2).
- æ¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ mount (¼«¡Γ¿α«óáΓ∞) ßó∩ºδóáÑΓ Σá⌐½«óπε ß¿ßΓÑ¼π ¿º π¬áºá¡-
- ¡«ú« αáºñÑ½á ¡á ñ¿ß¬Ñ ß ßπΘÑßΓóπεΘÑ⌐ ¿Ñαáασ¿Ñ⌐ Σá⌐½«óδσ ß¿ßΓѼ, á Σπ¡¬µ¿∩
- umount (ñѼ«¡Γ¿α«óáΓ∞) ó䬽ετáÑΓ Σá⌐½«óπε ß¿ßΓÑ¼π ¿º ¿Ñαáασ¿¿. öπ¡¬µ¿∩
- mount, Γᬿ¼ «íαẫ¼, ñáÑΓ »«½∞º«óáΓѽ∩¼ 󫺼«ª¡«ßΓ∞ «íαáΘáΓ∞ß∩ ¬ ñá¡¡δ¼ ó
- ñ¿ß¬«ó«¼ αáºñÑ½Ñ ¬á¬ ¬ Σá⌐½«ó«⌐ ß¿ßΓѼÑ, á ¡Ñ ¬á¬ ¬ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ñ¿ß-
- ¬«óδσ í½«¬«ó.
- æ¿¡Γá¬ß¿ß ó맮óá Σπ¡¬µ¿¿ mount:
- mount(special pathname,directory pathname,options);
-
- úñÑ special pathname - ¿¼∩ ߻ѵ¿á½∞¡«ú« Σá⌐½á πßΓα«⌐ßΓóá, ß««ΓóÑΓßΓóπεΘÑú«
- ñ¿ß¬«ó«¼π αáºñѽπ ß ¼«¡Γ¿απѼ«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼ«⌐, directory pathname - ¬á-
- ΓὫú ó ßπΘÑßΓóπεΘÑ⌐ ¿Ñαáασ¿¿, úñÑ íπñÑΓ ¼«¡Γ¿α«óáΓ∞ß∩ Σá⌐½«óá∩ ß¿ßΓѼá
- (ñαπú¿¼¿ ß½«óἿ, Γ«τ¬á ¿½¿ ¼ÑßΓ« ¼«¡Γ¿α«óá¡¿∩), á options π¬áºδóáÑΓ, ß½Ññπ-
- ÑΓ ½¿ ¼«¡Γ¿α«óáΓ∞ Σá⌐½«óπε ß¿ßΓѼπ "Γ«½∞¬« ñ½∩ τΓÑ¡¿∩" (»α¿ φΓ«¼ ¡Ñ íπñπΓ
- óδ»«½¡∩Γ∞ß∩
-
- ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐
- /
- │ │ │
- ┌────────────────┬──┴─────────────┐ è«α¡Ñóá∩
- │ │ │ │ │ Σá⌐½«óá∩
- bin etc usr ß¿ßΓѼá
- │ │ │ ∙ │
- ┌─────┼─────┐ ┌────┴────┐ ∙
- │ │ │ │ │ │ ∙ │
- cc date sh getty passwd ∙
- └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
- ∙
- ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐
- /
- │ │ │
- öá⌐½«óá∩ ┌────────────────┬──┴─────────────┐
- ß¿ßΓÑ¼á ¿º │ │ │ │ │
- αáºñѽá ß bin include src
- ¿¼Ñ¡Ñ¼ │ │ │ │ │
- /dev/dsk1 ┌─────┼─────┐ │ │
- │ │ │ │ │ │ │
- awk banner yacc stdio.h uts
- └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
-
- É¿ßπ¡«¬ 5.22. äÑαÑó« Σá⌐½«óδσ ß¿ßΓѼ ñ« ¿ »«ß½Ñ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ mount
-
- Γá¬¿Ñ Σπ¡¬µ¿¿, ¬á¬ write ¿ creat, ¬«Γ«αδÑ »α«¿ºó«ñ∩Γ ºá»¿ß∞ ó Σá⌐½«óπε ß¿ß-
- ΓѼπ). ìá»α¿¼Ñα, Ñß½¿ »α«µÑßß óδºδóáÑΓ Σπ¡¬µ¿ε mount ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- mount("/dev/dsk1","/usr",0);
-
- ∩ñα« »α¿ß«Ññ¿¡∩ÑΓ Σá⌐½«óπε ß¿ßΓѼπ, ¡áσ«ñ∩Θπεß∩ ó ñ¿ß¬«ó«¼ αáºñÑ½Ñ ß ¿¼Ñ¡Ñ¼
- "/dev/dsk1", ¬ ¬áΓὫúπ "/usr" ó ßπΘÑßΓóπεΘѼ ñÑαÑóÑ Σá⌐½«óδσ ß¿ßΓѼ (ß¼.
-
- 112
-
- É¿ßπ¡«¬ 5.22). öá⌐½ "/dev/dsk1" ∩ó½∩ÑΓß∩ í½«τ¡δ¼ ߻ѵ¿á½∞¡δ¼ Σá⌐½«¼, Γ.Ñ. «¡
- ¡«ß¿Γ ¿¼∩ πßΓα«⌐ßΓóá í½«τ¡«ú« Γ¿»á, «íδτ¡« ¿¼∩ αáºñÑ½á ¡á ñ¿ß¬Ñ. ƒñα« »αÑñ-
- »«½áúáÑΓ, τΓ« αáºñѽ ¡á ñ¿ß¬Ñ ß π¬áºá¡¡δ¼ ¿¼Ñ¡Ñ¼ ß«ñÑαª¿Γ Σá⌐½«óπε ß¿ßΓѼπ ß
- ßπ»Ñαí½«¬«¼, ß»¿ß¬«¼ ¿¡ñÑ¬ß«ó ¿ ¬«α¡Ñóδ¼ ¿¡ñѬ߫¼. Å«ß½Ñ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿
- mount ¬ ¬«α¡ε ß¼«¡Γ¿α«óá¡¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ¼«ª¡« «íαáΘáΓ∞ß∩ »« ¿¼Ñ¡¿
- "/usr". Åα«µÑßßδ ¼«úπΓ «íαáΘáΓ∞ß∩ ¬ Σá⌐½á¼ ó ¼«¡Γ¿α«óá¡¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼÑ
- ¿ ¿ú¡«α¿α«óáΓ∞ ëà Σá¬Γ, τΓ« ß¿ßΓÑ¼á ¼«ªÑΓ «Γß«Ññ¿¡∩Γ∞ß∩. Æ«½∞¬« ß¿ßΓѼ¡á∩
- Σπ¡¬µ¿∩ link ¬«¡Γα«½¿απÑΓ Σá⌐½«óπε ß¿ßΓѼπ, Γᬠ¬á¬ ó óÑαß¿¿ V ¡Ñ αáºαÑΦáεΓ-
- ß∩ ßó∩º¿ ¼Ñªñπ Σá⌐½á¼¿, »α¿¡áñ½ÑªáΘ¿¼¿ αáº¡δ¼ Σá⌐½«óδ¼ ß¿ßΓѼἠ(ß¼. αáºñѽ
- 5.15).
- ƒñα« »«ññÑনóáÑΓ Γáí½¿µπ ¼«¡Γ¿α«óá¡¿∩ ß ºá»¿ß∩¼¿ « ¬áªñ«⌐ ¼«¡Γ¿α«óá¡¡«⌐
- Σá⌐½«ó«⌐ ß¿ßΓѼÑ. é ¬áªñ«⌐ ºá»¿ß¿ Γáí½¿µδ ¼«¡Γ¿α«óá¡¿∩ ß«ñÑαªáΓß∩:
- * ¡«¼Ñα πßΓα«⌐ßΓóá, ¿ñÑ¡Γ¿Σ¿µ¿απεΘ¿⌐ ¼«¡Γ¿α«óá¡¡πε Σá⌐½«óπε ß¿ßΓѼπ (π»«-
- ¼∩¡πΓδ⌐ óδΦÑ ½«ú¿τÑ߬¿⌐ ¡«¼Ñα Σá⌐½«ó«⌐ ß¿ßΓѼδ);
- * π¬áºáΓѽ∞ ¡á íπΣÑα, úñÑ ¡áσ«ñ¿Γß∩ ßπ»Ñαí½«¬ Σá⌐½«ó«⌐ ß¿ßΓѼδ;
- * π¬áºáΓѽ∞ ¡á ¬«α¡Ñó«⌐ ¿¡ñÑ¬ß ¼«¡Γ¿α«óá¡¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ ("/" ñ½∩
- Σá⌐½«ó«⌐ ß¿ßΓѼδ ß ¿¼Ñ¡Ñ¼ "/dev/dsk1" ¡á É¿ßπ¡¬Ñ 5.22);
- * π¬áºáΓѽ∞ ¡á ¿¡ñÑ¬ß ¬áΓὫúá, ßΓáóΦÑú« Γ«τ¬«⌐ ¼«¡Γ¿α«óá¡¿∩ (¡á É¿ßπ¡¬Ñ
- 5.22 φΓ« ¬áΓὫú "usr", »α¿¡áñ½ÑªáΘ¿⌐ ¬«α¡Ñó«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼÑ).
- æó∩º∞ ¿¡ñѬßá Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩ ß ¬«α¡Ñóδ¼ ¿¡ñѬ߫¼ ¼«¡Γ¿α«óá¡¡«⌐ Σá⌐-
- ½«ó«⌐ ß¿ßΓѼδ, 󫺡¿¬Φá∩ ó αѺπ½∞ΓáΓÑ óδ»«½¡Ñ¡¿∩ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ mount,
- ñáÑΓ ∩ñαπ 󫺼«ª¡«ßΓ∞ ½Ñú¬« ñó¿úáΓ∞ß∩ »« ¿Ñαáασ¿¿ Σá⌐½«óδσ ß¿ßΓѼ íѺ »«½π-
- τÑ¡¿∩ «Γ »«½∞º«óáΓѽÑ⌐ ñ«»«½¡¿Γѽ∞¡δσ ßóÑñÑ¡¿⌐.
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ mount │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ¿¼∩ í½«τ¡«ú« ߻ѵ¿á½∞¡«ú« Σá⌐½á │
- │ ¿¼∩ ¬áΓὫúá Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩ │
- │ «»µ¿¿ ("Γ«½∞¬« ñ½∩ τΓÑ¡¿∩") │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: «ΓßπΓßΓóπÑΓ │
- │ { │
- │ Ñß½¿ (»«½∞º«óáΓѽ∞ ¡Ñ ∩ó½∩ÑΓß∩ ßπ»Ñα»«½∞º«óáΓѽѼ) │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß ñ½∩ í½«τ¡«ú« ߻ѵ¿á½∞¡«ú« Σá⌐½á (á½ú«- │
- │ α¿Γ¼ namei); │
- │ »α«óÑα¿Γ∞ ñ«»πßΓ¿¼«ßΓ∞ º¡áτÑ¡¿⌐ »áαá¼ÑΓα«ó; │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß ñ½∩ ¿¼Ñ¡¿ ¬áΓὫúá, úñÑ »α«¿ºó«ñ¿Γß∩ │
- │ ¼«¡Γ¿α«óá¡¿Ñ (á½ú«α¿Γ¼ namei); │
- │ Ñß½¿ (¿¡ñÑ¬ß ¡Ñ ∩ó½∩ÑΓß∩ ¿¡ñѬ߫¼ ¬áΓὫúá ¿½¿ ßτÑΓτ¿¬ │
- │ ßß佫¬ ¿¼ÑÑΓ º¡áτÑ¡¿Ñ > 1) │
- │ { │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñѬßδ (á½ú«α¿Γ¼ iput); │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ } │
- │ ¡á⌐Γ¿ ßó«í«ñ¡«Ñ ¼ÑßΓ« ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩; │
- │ ºá»πßΓ¿Γ∞ »α«µÑñπαπ «Γ¬αδΓ¿∩ í½«τ¡«ú« πßΓα«⌐ßΓóá ñ½∩ │
- │ ñá¡¡«ú« ñαá⌐óÑαá; │
- │ »«½πτ¿Γ∞ ßó«í«ñ¡δ⌐ íπΣÑα ¿º íπΣÑα¡«ú« ¬ÑΦá; │
- │ ßτ¿ΓáΓ∞ ßπ»Ñαí½«¬ ó ßó«í«ñ¡δ⌐ íπΣÑα; │
- │ »α«¿¡¿µ¿á½¿º¿α«óáΓ∞ »«½∩ ßπ»Ñαí½«¬á; │
- │ »«½πτ¿Γ∞ ¬«α¡Ñó«⌐ ¿¡ñÑ¬ß ¼«¡Γ¿απѼ«⌐ ß¿ßΓѼδ (á½ú«α¿Γ¼ │
- │ iget), ß«σαá¡¿Γ∞ Ñú« ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩; │
- │ ßñѽáΓ∞ »«¼ÑΓ¬π ó ¿¡ñѬßÑ ¬áΓὫúá « Γ«¼, τΓ« ¬áΓὫú │
- │ ∩ó½∩ÑΓß∩ Γ«τ¬«⌐ ¼«¡Γ¿α«óá¡¿∩; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß ß»Ñµ¿á½∞¡«ú« Σá⌐½á (á½ú«α¿Γ¼ iput); │
- │ ß¡∩Γ∞ í½«¬¿α«ó¬π ß ¿¡ñѬßá ¬áΓὫúá Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩;│
- │ } │
- └────────────────────────────────────────────────────────────┘
- É¿ßπ¡«¬ 5.23. ǽú«α¿Γ¼ ¼«¡Γ¿α«óá¡¿∩ Σá⌐½«ó«⌐ ß¿ßΓѼδ
-
- 113
-
-
- ìá É¿ßπ¡¬Ñ 5.23 »«¬áºá¡ á½ú«α¿Γ¼ ¼«¡Γ¿α«óá¡¿∩ Σá⌐½«ó«⌐ ß¿ßΓѼδ. ƒñα«
- »«ºó«½∩ÑΓ ¼«¡Γ¿α«óáΓ∞ ¿ ñѼ«¡Γ¿α«óáΓ∞ Σá⌐½«óδÑ ß¿ßΓѼδ Γ«½∞¬« ΓѼ »α«µÑßßá¼,
- ó½áñѽ∞µÑ¼ ¬«Γ«αδσ ∩ó½∩ÑΓß∩ ßπ»Ñα»«½∞º«óáΓѽ∞. ÅαÑñ«ßΓáó½Ñ¡¿Ñ 󫺼«ª¡«ßΓ¿
- óδ»«½¡∩Γ∞ Σπ¡¬µ¿¿ mount ¿ umount óßѼ »«½∞º«óáΓѽ∩¼ »α¿óѽ« íδ ¬ ó¡ÑßÑ¡¿ε ß
- ¿σ ßΓ«α«¡δ σá«ßá ó αáí«Γπ Σá⌐½«ó«⌐ ß¿ßΓѼδ, ¬á¬ π¼δΦ½Ñ¡¡«¼π, Γᬠ¿ ∩ó¿óΦѼπ-
- ß∩ αѺπ½∞ΓáΓ«¼ ¡Ñ«ßë᫪¡«ßΓ¿. æπ»Ñα»«½∞º«óáΓѽ¿ ¼«úπΓ αáºαπΦ¿Γ∞ ß¿ßΓѼπ
- Γ«½∞¬« ß½πτá⌐¡«.
- ƒñα« ¡áσ«ñ¿Γ ¿¡ñÑ¬ß ß»Ñµ¿á½∞¡«ú« Σá⌐½á, »αÑñßΓáó½∩εΘÑú« Σá⌐½«óπε ß¿ßΓÑ-
- ¼π, »«ñ½ÑªáΘπε ¼«¡Γ¿α«óá¡¿ε, ¿ºó½Ñ¬áÑΓ ßΓáαΦ¿⌐ ¿ ¼½áñΦ¿⌐ ¡«¼Ñαá, ¬«Γ«αδÑ
- ¿ñÑ¡Γ¿Σ¿µ¿απεΓ ß««ΓóÑΓßΓóπεΘ¿⌐ ñ¿ß¬«óδ⌐ αáºñѽ, ¿ óδí¿αáÑΓ ¿¡ñÑ¬ß ¬áΓὫúá,
- ó ¬«Γ«α«¼ Σá⌐½«óá∩ ß¿ßΓѼá íπñÑΓ ß¼«¡Γ¿α«óá¡á. æτÑΓτ¿¬ ßß佫¬ ó ¿¡ñѬßÑ ¬á-
- ΓὫúá ñ«½ªÑ¡ ¿¼ÑΓ∞ º¡áτÑ¡¿Ñ, ¡Ñ »αÑóδΦáεΘÑÑ 1 (¿ ¼Ñ¡∞ΦÑ 1 «¡ ¡Ñ ñ«½ªÑ¡ íδΓ∞
- - »«τѼπ?), ó ßó∩º¿ ß ¡á½¿τ¿Ñ¼ »«ΓÑ¡µ¿á½∞¡« «»áß¡δσ »«í«τ¡δσ φΣΣÑ¬Γ«ó (ß¼.
- π»α᪡ѡ¿Ñ 5.27). çáΓѼ ∩ñα« ¡áº¡áτáÑΓ ßó«í«ñ¡«Ñ ¼ÑßΓ« ó Γáí½¿µÑ ¼«¡Γ¿α«óá-
- ¡¿∩, »«¼ÑτáÑΓ Ñú« ñ½∩ ¿ß»«½∞º«óá¡¿∩ ¿ »α¿ßóá¿óáÑΓ º¡áτÑ¡¿Ñ »«½ε ¡«¼Ñαá πßΓ-
- α«⌐ßΓóá ó Γáí½¿µÑ. éδΦÑπ¬áºá¡¡δÑ ¡áº¡áτÑ¡¿∩ »α«¿ºó«ñ∩Γß∩ ¡Ñ¼Ññ½Ñ¡¡«, »«ß-
- ¬«½∞¬π óδºδóáεΘ¿⌐ »α«µÑßß ¼«ªÑΓ »α¿«ßΓá¡«ó¿Γ∞ß∩, ß½Ññπ∩ »α«µÑñπαÑ «Γ¬αδΓ¿∩
- πßΓα«⌐ßΓóá ¿½¿ ßτ¿Γδóá∩ ßπ»Ñαí½«¬ Σá⌐½«ó«⌐ ß¿ßΓѼδ, á ñαπú«⌐ »α«µÑßß ΓѼ
- óαѼѡѼ »«»δΓá½ß∩ íδ ß¼«¡Γ¿α«óáΓ∞ Σá⌐½«óπε ß¿ßΓѼπ. Å«¼ÑΓ¿ó ñ½∩ ¿ß»«½∞º«óá-
- ¡¿∩ ºá»¿ß∞ ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩, ∩ñα« ¡Ñ ñ«»π߬áÑΓ ¿ß»«½∞º«óá¡¿∩ ó ñóπσ
- ó맮óáσ Σπ¡¬µ¿¿ mount «ñ¡«⌐ ¿ Γ«⌐ ªÑ ºá»¿ß¿ Γáí½¿µδ. çừ¼¿¡á∩ ¡«¼Ñα πßΓα«⌐-
- ßΓóá ß ¼«¡Γ¿απѼ«⌐ ß¿ßΓѼ«⌐, ∩ñα« ¼«ªÑΓ ó«ß»αÑ»∩ΓßΓó«óáΓ∞ »«óΓ«α¡«¼π ¼«¡Γ¿-
- α«óá¡¿ε «ñ¡«⌐ ¿ Γ«⌐ ªÑ ß¿ßΓѼδ ñαπú¿¼¿ »α«µÑßßἿ, ¬«Γ«α«Ñ, íπñ∞ «¡« ñ«»πΘÑ-
- ¡«, ¼«ú½« íδ »α¿óÑßΓ¿ ¬ ¡Ñ»αÑñ߬áºπÑ¼δ¼ »«ß½ÑñßΓó¿∩¼ (ß¼. π»α᪡ѡ¿Ñ 5.26).
- ƒñα« óδºδóáÑΓ »α«µÑñπαπ «Γ¬αδΓ¿∩ ñ½∩ í½«τ¡«ú« πßΓα«⌐ßΓóá, ß«ñÑαªáΘÑú«
- Σá⌐½«óπε ß¿ßΓѼπ, Γ«τ¡« ΓᬠªÑ, ¬á¬ «¡« ñѽáÑΓ φΓ« »α¿ ¡Ñ»«ßαÑñßΓóÑ¡¡«¼ «Γ¬-
- αδΓ¿¿ í½«τ¡«ú« πßΓα«⌐ßΓóá (ú½áóá 10). Åα«µÑñπαá «Γ¬αδΓ¿∩ πßΓα«⌐ßΓóá «íδτ¡«
- »α«óÑα∩ÑΓ ßπΘÑßΓó«óá¡¿Ñ Γᬫú« πßΓα«⌐ßΓóá, ¿¡«úñá »α«¿ºó«ñ∩ ¿¡¿µ¿á½¿ºáµ¿ε
- ßΓαπ¬Γπα ñá¡¡δσ ñαá⌐óÑαá ¿ »«ßδ½á∩ ¬«¼á¡ñδ ¿¡¿µ¿á½¿ºáµ¿¿ á»»áαáΓπαÑ. çáΓѼ
- ∩ñα« óδñѽ∩ÑΓ ¿º íπΣÑα¡«ú« »π½á ßó«í«ñ¡δ⌐ íπΣÑα (óáα¿á¡Γ á½ú«α¿Γ¼á getblk)
- ñ½∩ σαá¡Ñ¡¿∩ ßπ»Ñαí½«¬á ¼«¡Γ¿απѼ«⌐ Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ¿ ßτ¿ΓδóáÑΓ ßπ»Ñαí½«¬,
- ¿ß»«½∞ºπ∩ «ñ¿¡ ¿º óáα¿á¡Γ«ó á½ú«α¿Γ¼á read. ƒñα« ß«σαá¡∩ÑΓ π¬áºáΓѽ∞ ¡á ¿¡-
- ñÑ¬ß ¬áΓὫúá, ó ¬«Γ«α«¼ ¼«¡Γ¿απÑΓß∩ ß¿ßΓѼá, ñáóá∩ 󫺼«ª¡«ßΓ∞ ¼áαΦαπΓá¼
- »«¿ß¬á Σá⌐½«óδσ ¿¼Ñ¡, ß«ñÑαªáΘ¿σ ¿¼∩ "..", »ÑαÑßѬáΓ∞ Γ«τ¬π ¼«¡Γ¿α«óá¡¿∩,
- ¬á¬ ¼δ πó¿ñ¿¼ ñá½∞ΦÑ. Ä¡« ¡áσ«ñ¿Γ ¬«α¡Ñó«⌐ ¿¡ñÑ¬ß ¼«¡Γ¿απѼ«⌐ Σá⌐½«ó«⌐ ß¿ß-
- ΓÑ¼δ ¿ ºá»«¼¿¡áÑΓ π¬áºáΓѽ∞ ¡á ¿¡ñÑ¬ß ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩. æ Γ«τ¬¿ ºαÑ¡¿∩
- »«½∞º«óáΓѽ∩, ¼ÑßΓ« (Γ«τ¬á) ¼«¡Γ¿α«óá¡¿∩ ¿ ¬«αÑ¡∞ Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ½«ú¿τÑ߬¿
- φ¬ó¿óá½Ñ¡Γ¡δ, ¿ ∩ñα« π»α«τ¿óáÑΓ φΓπ φ¬ó¿óá½Ñ¡Γ¡«ßΓ∞ í½áú«ñáα∩ ¿σ ß«ßπΘÑßΓó«-
- óá¡¿ε ó «ñ¡«⌐ ºá»¿ß¿ Γáí½¿µδ ¼«¡Γ¿α«óá¡¿∩. Åα«µÑßßδ í«½∞ΦÑ ¡Ñ ¼«úπΓ «íαá-
- ΘáΓ∞ß∩ ¬ ¿¡ñѬßπ ¬áΓὫúá - Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩.
- ƒñα« ¿¡¿µ¿á½¿º¿απÑΓ »«½∩ ó ßπ»Ñαí½«¬Ñ Σá⌐½«ó«⌐ ß¿ßΓѼδ, «τ¿Θá∩ »«½∩ ñ½∩
- ß»¿ß¬á ßó«í«ñ¡δσ í½«¬«ó ¿ ß»¿ß¬á ßó«í«ñ¡δσ ¿¡ñÑ¬ß«ó ¿ πßΓá¡áó½¿óá∩ τ¿ß½«
- ßó«í«ñ¡δσ ¿¡ñѬ߫ó ó ßπ»Ñαí½«¬Ñ αáó¡δ¼ 0. ûѽ∞ε ¿¡¿µ¿á½¿ºáµ¿¿ (ºáñá¡¿∩ ¡á-
- τá½∞¡δσ º¡áτÑ¡¿⌐ »«½Ñ⌐) ∩ó½∩ÑΓß∩ ßóÑñÑ¡¿Ñ ¬ ¼¿¡¿¼π¼π «»áß¡«ßΓ¿ αáºαπΦ¿Γ∞
- Σá⌐½«óπε ß¿ßΓѼπ, Ñß½¿ ¼«¡Γ¿α«óá¡¿Ñ «ßπΘÑßΓó½∩ÑΓß∩ »«ß½Ñ áóáα¿⌐¡«ú« ºáóÑαΦÑ-
- ¡¿∩ αáí«Γδ ß¿ßΓѼδ. àß½¿ ∩ñα« ºáßΓáó¿Γ∞ ñπ¼áΓ∞, τΓ« ó ßπ»Ñαí½«¬Ñ «ΓßπΓßΓóπεΓ
- ßó«í«ñ¡δÑ ¿¡ñѬßδ, Γ« φΓ« »α¿óÑñÑΓ ¬ ºá»π߬π á½ú«α¿Γ¼á ialloc, óÑñπΘÑú« »«-
- ¿ß¬ ¡á ñ¿ß¬Ñ ßó«í«ñ¡δσ ¿¡ñѬ߫ó. è ß«ªá½Ñ¡¿ε, Ñß½¿ ß»¿ß«¬ ßó«í«ñ¡δσ ñ¿ß¬«óδσ
- í½«¬«ó ¿ß»«ατÑ¡, ∩ñα« ¡Ñ ¿ß»αáó½∩ÑΓ φΓ«Γ ß»¿ß«¬ ¿º¡πΓα¿ (ß¼. αáºñѽ 5.17 «
- ß«»α«ó«ªñÑ¡¿¿ Σá⌐½«ó«⌐ ß¿ßΓѼδ). àß½¿ »«½∞º«óáΓѽ∞ ¼«¡Γ¿απÑΓ Σá⌐½«óπε ß¿ßΓÑ-
- ¼π Γ«½∞¬« ñ½∩ τΓÑ¡¿∩, ºá»αÑΘá∩ »α«óÑñÑ¡¿Ñ óßÑσ «»Ñαᵿ⌐ ºá»¿ß¿ ó ß¿ßΓѼÑ,
- ∩ñα« πßΓá¡áó½¿óáÑΓ ó ßπ»Ñαí½«¬Ñ ß««ΓóÑΓßΓóπεΘ¿⌐ Σ½áú. ìᬫ¡Ñµ, ∩ñα« »«¼ÑτáÑΓ
- ¿¡ñÑ¬ß ¬áΓὫúá ¬á¬ "Γ«τ¬π ¼«¡Γ¿α«óá¡¿∩", τΓ«íδ ñαπú¿Ñ »α«µÑßßδ »«ºñ¡ÑÑ ¼«ú-
- ½¿ ßßδ½áΓ∞ß∩ ¡á ¡ÑÑ. ìá É¿ßπ¡¬Ñ 5.24 »αÑñßΓáó½Ñ¡ ó¿ñ αẽ¿τ¡δσ ßΓαπ¬Γπα ñá¡-
- ¡δσ »« ºáóÑαΦÑ¡¿¿ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ mount.
-
-
-
-
- 114
-
- E5.14.1 ÅÑαÑßÑτÑ¡¿Ñ Γ«τѬ ¼«¡Γ¿α«óá¡¿∩ ó ¼áαΦαπΓáσ »«¿ß¬á ¿¼Ñ¡ Σá⌐½«óF
-
- äáóá⌐ΓÑ »«óΓ«α¡« αáßß¼«Γα¿¼ »«óÑñÑ¡¿Ñ á½ú«α¿Γ¼«ó namei ¿ iget ó ß½πτá∩σ,
- ¬«úñá ¼áαΦαπΓ »«¿ß¬á Σá⌐½«ó »α«σ«ñ¿Γ τÑαѺ Γ«τ¬π ¼«¡Γ¿α«óá¡¿∩. Æ«τ¬π ¼«¡Γ¿-
- α«óá¡¿∩ ¼«ª¡« »ÑαÑßÑτ∞ ñóπ¼∩ ß»«ß«íἿ: ¿º Σá⌐½«ó«⌐ ß¿ßΓѼδ, úñÑ »α«¿ºó«ñ¿Γ-
- ß∩ ¼«¡Γ¿α«óá¡¿Ñ, ó Σá⌐½«óπε ß¿ßΓѼπ, ¬«Γ«αá∩ ¼«¡Γ¿απÑΓß∩ (ó ¡á»αáó½Ñ¡¿¿ «Γ
- ú½«íá½∞¡«ú« ¬«α¡∩ ¬ ½¿ßΓπ), ¿ ó «íαáΓ¡«¼ ¡á»αáó½Ñ¡¿¿. ¥Γ¿ ß»«ß«íδ ¿½½εßΓα¿-
- απÑΓ ß½ÑñπεΘá∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ¬«¼á¡ñ shell'á.
-
- Æáí½¿µá ¿¡ñѬ߫ó Æáí½¿µá ¼«¡Γ¿α«óá¡¿∩
- ┌──────────────────┐ ┌────────────────────┐
- ├──────────────────┤ │ │
- │ ê¡ñÑ¬ß ¬áΓὫúá, ┼ ─ ─ ┐ │ │
- │ úñÑ »α«¿ºó«ñ¿Γß∩ │ │ │
- │ ¼«¡Γ¿α«óá¡¿Ñ │ │ │ │ ┌───────┐
- │ Å«¼ÑτÑ¡ ¬á¬ "Γ«τ-│<───┐ │ │┌─>│ üπΣÑα │
- │ ¬á ¼«¡Γ¿α«óá¡¿∩" │ ││ │ ││ └───────┘
- │ æτÑΓτ¿¬ ßß佫¬ =1│ │ │ ││
- ├──────────────────┤ │└ >├────────────────────┤│
- │ │ │ │ æπ»Ñαí½«¬ ───┼┘
- ├──────────────────┤ └───┼ ê¡ñÑ¬ß Γ«τ¬¿ ¼«¡Γ¿-│
- │ ê¡ñÑ¬ß πßΓα«⌐ßΓóá│ │ α«óá¡¿∩ │
- │ ìÑ ¿ß»«½∞ºπÑΓß∩ │ ┌───┼─ è«α¡Ñó«⌐ ¿¡ñÑ¬ß │
- │ æτÑΓτ¿¬ ßß佫¬ =0│ │ ├────────────────────┤
- ├──────────────────┤ │ │ │
- ├──────────────────┤<───┘ │ │
- │ ê¡ñÑ¬ß ¬«α¡∩ ¼«¡-│ │ │
- │ Γ¿απѼ«⌐ Σá⌐½«ó«⌐│ │ │
- │ ß¿ßΓѼδ │ │ │
- │ æτÑΓτ¿¬ ßß佫¬ =1│ └────────────────────┘
- ├──────────────────┤
- └──────────────────┘
-
- É¿ßπ¡«¬ 5.24. æΓαπ¬Γπαδ ñá¡¡δσ »«ß½Ñ ¼«¡Γ¿α«óá¡¿∩
-
-
- mount /dev/dsk1 /usr
- cd /usr/src/uts
- cd ../../..
- Å« ¬«¼á¡ñÑ mount »«ß½Ñ óδ»«½¡Ñ¡¿∩ ¡Ñ¬«Γ«αδσ ½«ú¿τÑ߬¿σ »α«óÑ᫬ ºá»π߬á-
- ÑΓß∩ ß¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ mount, ¬«Γ«αá∩ ¼«¡Γ¿απÑΓ Σá⌐½«óπε ß¿ßΓѼπ ó ñ¿ß¬«ó«¼
- αáºñÑ½Ñ ß ¿¼Ñ¡Ñ¼ "/dev/dsk1" »«ñ π»αáó½Ñ¡¿Ñ¼ ¬áΓὫúá "/usr". ÅÑαóá∩ ¿º ¬«-
- ¼á¡ñ cd (߼ѡ¿Γ∞ ¬áΓὫú) »«íπªñáÑΓ ¬«¼á¡ñ¡δ⌐ »α«µÑßß«α shell óδºóáΓ∞ ß¿ß-
- ΓѼ¡πε Σπ¡¬µ¿ε chdir, óδ»«½¡∩∩ ¬«Γ«απε, ∩ñα« á¡á½¿º¿απÑΓ ¿¼∩ »πΓ¿ »«¿ß¬á,
- »ÑαÑßѬáεΘÑú« Γ«τ¬π ¼«¡Γ¿α«óá¡¿∩ ó "/usr". éΓ«αá∩ ¿º ¬«¼á¡ñ cd »α¿ó«ñ¿Γ ¬
- Γ«¼π, τΓ« ∩ñα« á¡á½¿º¿απÑΓ ¿¼∩ »πΓ¿ »«¿ß¬á ¿ »ÑαÑßѬáÑΓ Γ«τ¬π ¼«¡Γ¿α«óá¡¿∩ ó
- ΓαÑΓ∞Ñ⌐ ¬«¼»«¡Ñ¡ΓÑ ".." ¿¼Ñ¡¿.
- ä½∩ ß½πτá∩ »ÑαÑßÑτÑ¡¿∩ Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩ ó ¡á»αáó½Ñ¡¿¿ ¿º Σá⌐½«ó«⌐ ß¿ß-
- ΓѼδ, úñÑ »α«¿ºó«ñ¿Γß∩ ¼«¡Γ¿α«óá¡¿Ñ, ó Σá⌐½«óπε ß¿ßΓѼπ, ¬«Γ«αá∩ ¼«¡Γ¿απÑΓ-
- ß∩, αáßß¼«Γα¿¼ ¼«ñ¿Σ¿¬áµ¿ε á½ú«α¿Γ¼á iget (É¿ßπ¡«¬ 5.25), ¬«Γ«αá∩ ¿ñÑ¡Γ¿τ¡á
- óÑαß¿¿ á½ú«α¿Γ¼á, »α¿óÑñÑ¡¡«⌐ ¡á É¿ßπ¡¬Ñ 4.3, »«τΓ¿ ó« óßѼ, ºá ¿ß¬½ετÑ¡¿Ñ¼
- Γ«ú«, τΓ« ó ñá¡¡«⌐ ¼«ñ¿Σ¿¬áµ¿¿ »α«¿ºó«ñ¿Γß∩ »α«óÑα¬á, ∩ó½∩ÑΓß∩ ½¿ ¿¡ñÑ¬ß ¿¡-
- ñѬ߫¼ Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩. àß½¿ ¿¡ñÑ¬ß ¿¼ÑÑΓ ß««ΓóÑΓßΓóπεΘπε »«¼ÑΓ¬π, ∩ñα«
- ß«ú½áΦáÑΓß∩, τΓ« φΓ« ¿¡ñÑ¬ß Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩. Ä¡« «í¡áαπª¿óáÑΓ ó Γáí½¿µÑ
- ¼«¡Γ¿α«óá¡¿∩ ºá»¿ß∞ ß π¬áºá¡¡δ¼ ¿¡ñѬ߫¼ Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩ ¿ ºá»«¼¿¡áÑΓ ¡«-
- ¼Ñα πßΓα«⌐ßΓóá ¼«¡Γ¿απѼ«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ. çáΓѼ, ¿ß»«½∞ºπ∩ ¡«¼Ñα πßΓα«⌐ß-
- Γóá ¿ ¡«¼Ñα ¿¡ñѬßá ¬«α¡∩, «íΘÑú« ñ½∩ óßÑσ Σá⌐½«óδσ ß¿ßΓѼ, ∩ñα« «íαáΘáÑΓß∩
- ¬ ¿¡ñѬß𠬫α¡∩
-
-
- 115
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ iget │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ¡«¼Ñα ¿¡ñѬßá ó Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ºáí½«¬¿α«óá¡¡δ⌐ ¿¡ñÑ¬ß │
- │ { │
- │ óδ»«½¡¿Γ∞ │
- │ { │
- │ Ñß½¿ (¿¡ñÑ¬ß ó ¿¡ñѬߡ«¼ ¬ÑΦÑ) │
- │ { │
- │ Ñß½¿ (¿¡ñÑ¬ß ºáí½«¬¿α«óá¡) │
- │ { │
- │ »α¿«ßΓá¡«ó¿Γ∞ß∩ (ñ« «ßó«í«ªñÑ¡¿∩ ¿¡ñѬßá); │
- │ »α«ñ«½ª¿Γ∞; /* µ¿¬½ ß πß½«ó¿Ñ¼ »α«ñ«½ªÑ¡¿∩ */ │
- │ } │
- │ /* ߻ѵ¿á½∞¡á∩ «íαáí«Γ¬á ñ½∩ Γ«τѬ ¼«¡Γ¿α«óá¡¿∩ */ │
- │ Ñß½¿ (¿¡ñÑ¬ß ∩ó½∩ÑΓß∩ ¿¡ñѬ߫¼ Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩) │
- │ { │
- │ ¡á⌐Γ¿ ºá»¿ß∞ ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩ ñ½∩ Γ«τ¬¿ ¼«¡- │
- │ Γ¿α«óá¡¿∩; │
- │ »«½πτ¿Γ∞ ¡«óδ⌐ ¡«¼Ñα Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ¿º Γáí½¿µδ │
- │ ¼«¡Γ¿α«óá¡¿∩; │
- │ ¿ß»«½∞º«óáΓ∞ ¡«¼Ñα ¿¡ñѬßá ¬«α¡∩ ñ½∩ »α«ß¼«Γαá; │
- │ »α«ñ«½ª¿Γ∞; /* »α«ñ«½ªÑ¡¿Ñ µ¿¬½á */ │
- │ } │
- │ Ñß½¿ (¿¡ñÑ¬ß ó ß»¿ß¬Ñ ßó«í«ñ¡δσ ¿¡ñѬ߫ó) │
- │ πíαáΓ∞ ¿º ß»¿ß¬á ßó«í«ñ¡δσ ¿¡ñѬ߫ó; │
- │ πóѽ¿τ¿Γ∞ ßτÑΓτ¿¬ ßß佫¬ ñ½∩ ¿¡ñѬßá; │
- │ ó«ºóαáΓ¿Γ∞ (¿¡ñѬß); │
- │ } │
- │ │
- │ /* ¿¡ñÑ¬ß «ΓßπΓßΓóπÑΓ ó ¿¡ñѬߡ«¼ ¬ÑΦÑ */ │
- │ πíαáΓ∞ ¡«óδ⌐ ¿¡ñÑ¬ß ¿º ß»¿ß¬á ßó«í«ñ¡δσ ¿¡ñѬ߫ó; │
- │ ßíα«ß¿Γ∞ ¡«¼Ñα ¿¡ñѬßá ¿ Σá⌐½«ó«⌐ ß¿ßΓѼδ; │
- │ πíαáΓ∞ ¿¡ñÑ¬ß ¿º ßΓáα«⌐ σÑΦ-«τÑαÑñ¿, »«¼ÑßΓ¿Γ∞ ó ¡«óπε;│
- │ ßτ¿ΓáΓ∞ ¿¡ñÑ¬ß ß ñ¿ß¬á (á½ú«α¿Γ¼ bread); │
- │ ¿¡¿µ¿á½¿º¿α«óáΓ∞ ¿¡ñÑ¬ß (¡á»α¿¼Ñα, πßΓá¡«ó¿ó ßτÑΓτ¿¬ │
- │ ßß佫¬ ó 1); │
- │ ó«ºóαáΓ¿Γ∞ (¿¡ñѬß); │
- │ } │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.25. î«ñ¿Σ¿¬áµ¿∩ á½ú«α¿Γ¼á »«½πτÑ¡¿∩ ñ«ßΓπ»á ¬ ¿¡-
- ñѬßπ
-
-
- ¼«¡Γ¿απѼ«ú« πßΓα«⌐ßΓóá ¿ ó«ºóαáΘáÑΓ »α¿ óδσ«ñÑ ¿º Σπ¡¬µ¿¿ φëà ¿¡ñѬß. é
- »Ñαó«¼ »α¿¼ÑαÑ ß¼Ñ¡δ ¬áΓὫúá ∩ñα« «íαáΘáÑΓß∩ ¬ ¿¡ñѬßπ ¬áΓὫúá "/usr" ¿º
- Σá⌐½«ó«⌐ ß¿ßΓѼδ, ó ¬«Γ«α«⌐ »α«¿ºó«ñ¿Γß∩ ¼«¡Γ¿α«óá¡¿Ñ, «í¡áαπª¿óáÑΓ, τΓ«
- φëà ¿¡ñÑ¬ß ¿¼ÑÑΓ »«¼ÑΓ¬π "Γ«τ¬á ¼«¡Γ¿α«óá¡¿∩", ¡áσ«ñ¿Γ ó Γáí½¿µÑ ¼«¡Γ¿α«óá-
- ¡¿∩ ¿¡ñÑ¬ß ¬«α¡∩ ¼«¡Γ¿απѼ«⌐ Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ¿ «íαáΘáÑΓß∩ ¬ φΓ«¼π ¿¡ñѬßπ.
- ä½∩ óΓ«α«ú« ß½πτá∩ »ÑαÑßÑτÑ¡¿∩ Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩ ó ¡á»αáó½Ñ¡¿¿ ¿º Σá⌐-
- ½«ó«⌐ ß¿ßΓѼδ, ¬«Γ«αá∩ ¼«¡Γ¿απÑΓß∩, ó Σá⌐½«óπε ß¿ßΓѼπ, úñÑ óδ»«½¡∩ÑΓß∩ ¼«¡-
- Γ¿α«óá¡¿Ñ, αáßß¼«Γα¿¼ ¼«ñ¿Σ¿¬áµ¿ε á½ú«α¿Γ¼á namei (É¿ßπ¡«¬ 5.26). Ä¡á »«σ«ªá
- ¡á óÑαß¿ε á½ú«α¿Γ¼á, »α¿óÑñÑ¡¡πε ¡á É¿ßπ¡¬Ñ 4.11. Äñ¡á¬«, »«ß½Ñ «í¡áαπªÑ¡¿∩
- ó ¬áΓὫúÑ ¡«¼Ñαá ¿¡ñѬßá ñ½∩ ñá¡¡«⌐ ¬«¼»«¡Ñ¡Γδ »πΓ¿ »«¿ß¬á ∩ñα« »α«óÑα∩ÑΓ,
- ¡Ñ π¬áºδóáÑΓ ½¿ ¡«¼Ñα ¿¡ñѬßá ¡á Γ«, τΓ« φΓ« ¬«α¡Ñó«⌐ ¿¡ñÑ¬ß Σá⌐½«ó«⌐ ß¿ßΓÑ-
- ¼δ. àß½¿ φΓ« Γᬠ¿ Ñß½¿ ΓѬπΘ¿⌐ αáí«τ¿⌐ ¿¡ñÑ¬ß ΓᬠªÑ ∩ó½∩ÑΓß∩ ¬«α¡Ñóδ¼, á
-
-
- 116
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ namei /* »αÑóαáΘÑ¡¿Ñ ¿¼Ñ¡¿ »πΓ¿ »«¿ß¬á ó ¿¡ñÑ¬ß */│
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ¿¼∩ »πΓ¿ »«¿ß¬á │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ºáí½«¬¿α«óá¡¡δ⌐ ¿¡ñÑ¬ß │
- │ { │
- │ Ñß½¿ (»πΓ∞ »«¿ß¬á íÑαÑΓ ¡áτὫ ß ¬«α¡∩) │
- │ αáí«τ¿⌐ ¿¡ñÑ¬ß = ¿¡ñѬß𠬫α¡∩ (á½ú«α¿Γ¼ iget); │
- │ ó »α«Γ¿ó¡«¼ ß½πτáÑ │
- │ αáí«τ¿⌐ ¿¡ñÑ¬ß = ¿¡ñѬßπ ΓѬπΘÑú« ¬áΓὫúá │
- │ (á½ú«α¿Γ¼ iget); │
- │ │
- │ óδ»«½¡¿Γ∞ (»«¬á »πΓ∞ »«¿ß¬á ¡Ñ ¬«¡τ¿½ß∩) │
- │ { │
- │ ßτ¿ΓáΓ∞ ß½ÑñπεΘπε ¬«¼»«¡Ñ¡Γπ ¿¼Ñ¡¿ »πΓ¿ »«¿ß¬á; │
- │ »α«óÑα¿Γ∞ ß««ΓóÑΓßΓó¿Ñ αáí«τÑú« ¿¡ñѬßá ¬áΓὫúπ │
- │ ¿ »αáóá ñ«ßΓπ»á; │
- │ Ñß½¿ (αáí«τ¿⌐ ¿¡ñÑ¬ß ß««ΓóÑΓßΓóπÑΓ ¬«α¡ε ¿ ¬«¼»«- │
- │ ¡Ñ¡Γá ¿¼Ñ¡¿ "..") │
- │ »α«ñ«½ª¿Γ∞; /* µ¿¬½ ß πß½«ó¿Ñ¼ »α«ñ«½ªÑ¡¿∩ */│
- │ »«¿ß¬ ¬«¼»«¡Ñ¡Γδ: │
- │ ßτ¿ΓáΓ∞ ¬áΓὫú (αáí«τ¿⌐ ¿¡ñѬß), »«óΓ«α∩∩ á½ú«- │
- │ α¿Γ¼δ bmap, bread ¿ brelse; │
- │ Ñß½¿ (¬«¼»«¡Ñ¡Γá ß««ΓóÑΓßΓóπÑΓ ºá»¿ß¿ ó ¬áΓὫúÑ │
- │ (αáí«τѼ ¿¡ñѬßÑ)) │
- │ { │
- │ »«½πτ¿Γ∞ ¡«¼Ñα ¿¡ñѬßá ñ½∩ ß«ó»áóΦÑ⌐ ¬«¼»«¡Ñ¡-│
- │ Γδ; │
- │ Ñß½¿ (¡á⌐ñÑ¡¡δ⌐ ¿¡ñÑ¬ß ∩ó½∩ÑΓß∩ ¿¡ñѬ߫¼ ¬«α- │
- │ ¡∩ ¿ αáí«τ¿⌐ ¿¡ñÑ¬ß ∩ó½∩ÑΓß∩ ¿¡ñѬ߫¼ ¬«α¡∩ │
- │ ¿ ¿¼∩ ¬«¼»«¡Ñ¡Γδ "..") │
- │ { │
- │ /* »ÑαÑßÑτÑ¡¿Ñ Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩ */ │
- │ »«½πτ¿Γ∞ ºá»¿ß∞ ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩ ñ½∩ │
- │ αáí«τÑú« ¿¡ñѬßá; │
- │ «ßó«í«ñ¿Γ∞ αáí«τ¿⌐ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ iput); │
- │ αáí«τ¿⌐ ¿¡ñÑ¬ß = ¿¡ñѬßπ Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩;│
- │ ºáí½«¬¿α«óáΓ∞ ¿¡ñÑ¬ß Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩; │
- │ πóѽ¿τ¿Γ∞ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßß佫¬ ¡á αáí«- │
- │ τ¿⌐ ¿¡ñѬß; │
- │ »ÑαÑ⌐Γ¿ ¬ »«¿ß¬π ¬«¼»«¡Ñ¡Γδ (ñ½∩ ".."); │
- │ } │
- │ «ßó«í«ñ¿Γ∞ αáí«τ¿⌐ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ iput); │
- │ αáí«τ¿⌐ ¿¡ñÑ¬ß = ¿¡ñѬßπ ß ¡«óδ¼ ¡«¼Ñα«¼ │
- │ (á½ú«α¿Γ¼ iget); │
- │ } │
- │ ó »α«Γ¿ó¡«¼ ß½πτáÑ /* ¬«¼»«¡Ñ¡Γá «ΓßπΓßΓóπÑΓ ó │
- │ ¬áΓὫúÑ */ │
- │ ó«ºóαáΓ¿Γ∞ (¡ÑΓ ¿¡ñѬßá); │
- │ } │
- │ ó«ºóαáΓ¿Γ∞ (αáí«τ¿⌐ ¿¡ñѬß); │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.26. î«ñ¿Σ¿¬áµ¿∩ á½ú«α¿Γ¼á ß¿¡Γá¬ß¿τÑ߬«ú« á¡á½¿ºá
- ¿¼Ñ¡¿ Σá⌐½á
-
-
- ¬«¼»«¡Ñ¡Γá »πΓ¿ »«¿ß¬á, ó ßó«ε «τÑαÑñ∞, ¿¼ÑÑΓ ¿¼∩ "..", ∩ñα« ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ
- ¿¡ñÑ¬ß ¬á¬ Γ«τ¬π ¼«¡Γ¿α«óá¡¿∩. Ä¡« ¡áσ«ñ¿Γ ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩ ºá»¿ß∞,
-
- 117
-
- ¡«¼Ñα πßΓα«⌐ßΓóá ó ¬«Γ«α«⌐ ß«ó»áñáÑΓ ß ¡«¼Ñα«¼ πßΓα«⌐ßΓóá ñ½∩ »«ß½Ññ¡Ñú« ¿º
- ¡á⌐ñÑ¡¡δσ ¿¡ñѬ߫ó, »«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ ¬áΓὫúá, ó ¬«Γ«α«¼ »α«¿ºó«ñ¿Γß∩
- ¼«¡Γ¿α«óá¡¿Ñ, ¿ »α«ñ«½ªáÑΓ »«¿ß¬ ¬«¼»«¡Ñ¡Γδ ß ¿¼Ñ¡Ñ¼ "..", ¿ß»«½∞ºπ∩ Γ«½∞¬«
- τΓ« »«½πτÑ¡¡δ⌐ ¿¡ñÑ¬ß ó ¬áτÑßΓóÑ αáí«τÑú«. é ¬«α¡Ñ Σá⌐½«ó«⌐ ß¿ßΓѼδ, ΓѼ ¡Ñ
- ¼Ñ¡ÑÑ, ¬«α¡Ñóδ¼ ¬áΓὫú«¼ ∩ó½∩ÑΓß∩ "..".
- é óδΦÑ»α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ (cd "../../..") »αÑñ»«½áúáÑΓß∩, τΓ« ó ¡áτá½Ñ
- »α«µÑßß ¿¼ÑÑΓ ΓѬπΘ¿⌐ ¬áΓὫú ß ¿¼Ñ¡Ñ¼ "/usr/src/uts". è«úñá ¿¼∩ »πΓ¿ »«¿ß¬á
- »«ñóÑαúáÑΓß∩ á¡á½¿ºπ ó á½ú«α¿Γ¼Ñ namei, ¡áτá½∞¡δ¼ αáí«τ¿¼ ¿¡ñѬ߫¼ ∩ó½∩ÑΓß∩
- ¿¡ñÑ¬ß ΓѬπΘÑú« ¬áΓὫúá. ƒñα« ¼Ñ¡∩ÑΓ ΓѬπΘ¿⌐ αáí«τ¿⌐ ¿¡ñÑ¬ß ¡á ¿¡ñÑ¬ß ¬áΓá-
- ½«úá ß ¿¼Ñ¡Ñ¼ "/usr/src" ó αѺπ½∞ΓáΓÑ αáßΦ¿Σα«ó¬¿ »Ñαó«⌐ ¬«¼»«¡Ñ¡Γδ ".." ó
- ¿¼Ñ¡¿ »πΓ¿ »«¿ß¬á. çáΓѼ ∩ñα« á¡á½¿º¿απÑΓ óΓ«απε ¬«¼»«¡Ñ¡Γπ ".." ó ¿¼Ñ¡¿ »π-
- Γ¿ »«¿ß¬á, ¡áσ«ñ¿Γ ¬«α¡Ñó«⌐ ¿¡ñÑ¬ß ß¼«¡Γ¿α«óá¡¡«⌐ (»ÑαÑñ φΓ¿¼) Σá⌐½«ó«⌐ ß¿ß-
- ΓѼδ - ¿¡ñÑ¬ß ¬áΓὫúá "usr" - ¿ ñѽáÑΓ Ñú« αáí«τ¿¼ ¿¡ñѬ߫¼ »α¿ á¡á½¿ºÑ
- ¿¼Ñ¡¿ ß »«¼«Θ∞ε á½ú«α¿Γ¼á namei. ìᬫ¡Ñµ, «¡« αáßΦ¿Σα«óδóáÑΓ ΓαÑΓ∞ε ¬«¼»«-
- ¡Ñ¡Γπ ".." ó ¿¼Ñ¡¿ »πΓ¿ »«¿ß¬á. ƒñα« «í¡áαπª¿óáÑΓ, τΓ« ¡«¼Ñα ¿¡ñѬßá ñ½∩
- ".." ß«ó»áñáÑΓ ß ¡«¼Ñα«¼ ¬«α¡Ñó«ú« ¿¡ñѬßá, αáí«τ¿¼ ¿¡ñѬ߫¼ ∩ó½∩ÑΓß∩ ¬«α¡Ñ-
- ó«⌐ ¿¡ñѬß, á ".." ∩ó½∩ÑΓß∩ ΓѬπΘÑ⌐ ¬«¼»«¡Ñ¡Γ«⌐ ¿¼Ñ¡¿ »πΓ¿ »«¿ß¬á. ƒñα« ¡á-
- σ«ñ¿Γ ºá»¿ß∞ ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩, ß««ΓóÑΓßΓóπεΘπε Γ«τ¬Ñ ¼«¡Γ¿α«óá¡¿∩
- "usr", «ßó«í«ªñáÑΓ ΓѬπΘ¿⌐ αáí«τ¿⌐ ¿¡ñÑ¬ß (¬«αÑ¡∞ Σá⌐½«ó«⌐ ß¿ßΓѼδ, ß¼«¡Γ¿-
- α«óá¡¡«⌐ ó ¬áΓὫúÑ "usr") ¿ ¡áº¡áτáÑΓ ¿¡ñÑ¬ß Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩ (¬áΓὫúá
- "usr" ó ¬«α¡Ñó«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼÑ) ó ¬áτÑßΓóÑ ¡«ó«ú« αáí«τÑú« ¿¡ñѬßá. çáΓѼ
- «¡« »α«ß¼áΓα¿óáÑΓ ºá»¿ß¿ ó ¬áΓὫúÑ Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩ "/usr" ó »«¿ß¬áσ ¿¼Ñ-
- ¡¿ ".." ¿ ¡áσ«ñ¿Γ ¡«¼Ñα ¿¡ñѬßá ñ½∩ ¬«α¡∩ Σá⌐½«ó«⌐ ß¿ßΓѼδ ("/"). Å«ß½Ñ φΓ«-
- ú« ß¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ chdir ºáóÑαΦáÑΓß∩ ¬á¬ «íδτ¡«, óδºδóáεΘ¿⌐ »α«µÑßß ¡Ñ «í-
- αáΘáÑΓ ó¡¿¼á¡¿∩ ¡á ëà Σá¬Γ, τΓ« «¡ »ÑαÑßѬ Γ«τ¬π ¼«¡Γ¿α«óá¡¿∩.
-
-
- E5.14.2 äѼ«¡Γ¿α«óá¡¿Ñ Σá⌐½«ó«⌐ ß¿ßΓѼδF
-
- æ¿¡Γá¬ß¿ß ó맮óá ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ umount:
- umount(special filename);
-
- úñÑ special filename π¬áºδóáÑΓ ñѼ«¡Γ¿απѼπε Σá⌐½«óπε ß¿ßΓѼπ. Åα¿ ñѼ«¡Γ¿-
- α«óá¡¿¿ Σá⌐½«ó«⌐ ß¿ßΓѼδ (É¿ßπ¡«¬ 5.27) ∩ñα« «íαáΘáÑΓß∩ ¬ ¿¡ñѬßπ ñѼ«¡Γ¿απ-
- Ѽ«ú« πßΓα«⌐ßΓóá, ó«ßßΓá¡áó½¿óáÑΓ ¡«¼Ñα πßΓα«⌐ßΓóá ñ½∩ ߻ѵ¿á½∞¡«ú« Σá⌐½á,
- «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ iput) ¿ ¡áσ«ñ¿Γ ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩ ºá»¿ß∞ ß
- ¡«¼Ñα«¼ πßΓα«⌐ßΓóá, αáó¡δ¼ ¡«¼Ñαπ πßΓα«⌐ßΓóá ñ½∩ ߻ѵ¿á½∞¡«ú« Σá⌐½á. ÅαѪñÑ
- τѼ ∩ñα« ñÑ⌐ßΓó¿Γѽ∞¡« ñѼ«¡Γ¿απÑΓ Σá⌐½«óπε ß¿ßΓѼπ, «¡« ñ«½ª¡« πñ«ßΓ«óÑ-
- α¿Γ∞ß∩ ó Γ«¼, τΓ« ó ß¿ßΓÑ¼Ñ ¡Ñ «ßΓὫß∞ ¿ß»«½∞ºπѼδσ Σá⌐½«ó, ñ½∩ φΓ«ú« ∩ñα«
- »α«ß¼áΓα¿óáÑΓ Γáí½¿µπ ¿¡ñѬ߫ó ó »«¿ß¬áσ óßÑσ Σá⌐½«ó, τÑ⌐ ¡«¼Ñα πßΓα«⌐ßΓóá
- ß«ó»áñáÑΓ ß ¡«¼Ñα«¼ ñѼ«¡Γ¿απѼ«⌐ ß¿ßΓѼδ. Ç¬Γ¿ó¡δ¼ Σá⌐½á¼ ß««ΓóÑΓßΓóπÑΓ »«-
- ½«ª¿Γѽ∞¡«Ñ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßß佫¬ ¿ ó ¿σ τ¿ß½« óσ«ñ∩Γ ΓѬπΘ¿⌐ ¬áΓὫú
- »α«µÑßßá, Σá⌐½δ ß αáºñѽ∩Ñ¼δ¼ ΓѬßΓ«¼, ¬«Γ«αδÑ ¿ß»«½¡∩εΓß∩ ó ΓѬπΘ¿⌐ ¼«¼Ñ¡Γ
- (ú½áóá 7), ¿ «Γ¬αδΓδÑ ¬«úñá-Γ« Σá⌐½δ, ¬«Γ«αδÑ »«Γ«¼ ¡Ñ í뫨 ºá¬αδΓδ. àß½¿
- ¬á¬¿Ñ-¡¿íπñ∞ Σá⌐½δ ¿º Σá⌐½«ó«⌐ ß¿ßΓѼδ á¬Γ¿ó¡δ, Σπ¡¬µ¿∩ umount ºáóÑαΦáÑΓß∩
- ¡Ñπñáτ¡«: Ñß½¿ íδ «¡á »α«Φ½á πß»ÑΦ¡«, á¬Γ¿ó¡δÑ Σá⌐½δ ßñѽ὿ß∞ íδ ¡Ññ«ßΓπ»-
- ¡δ¼¿.
- üπΣÑα¡δ⌐ »π½ óßÑ ÑΘÑ ß«ñÑαª¿Γ í½«¬¿ ß "«Γ½«ªÑ¡¡«⌐ ºá»¿ß∞ε", ¡Ñ »ÑαÑ»¿-
- ßá¡¡δÑ ¡á ñ¿ß¬, »«φΓ«¼π ∩ñα« "óδ¼δóáÑΓ" ¿σ ¿º íπΣÑα¡«ú« »π½á. ƒñα« πñá½∩ÑΓ
- ºá»¿ß¿ ß αáºñѽ∩Ñ¼δ¼ ΓѬßΓ«¼, ¬«Γ«αδÑ ¡áσ«ñ∩Γß∩ ó Γáí½¿µÑ «í½áßΓÑ⌐, ¡« ¡Ñ
- ∩ó½∩εΓß∩ ñÑ⌐ßΓóπεΘ¿¼¿ (»«ñα«í¡«ßΓ¿ ó ú½áóÑ 7), ºá»¿ßδóáÑΓ ¡á ñ¿ß¬ óßÑ ¡Ññáó-
- ¡« ߬«ααÑ¬Γ¿α«óá¡¡δÑ ßπ»Ñαí½«¬¿ ¿ ¬«ααÑ¬Γ¿απÑΓ ñ¿ß¬«óδÑ ¬«»¿¿ óßÑσ ¿¡ñѬ߫ó,
- ¬«Γ«αδÑ ΓαÑíπεΓ φΓ«ú«. èáºá½«ß∞, í佫 íδ ñ«ßΓáΓ«τ¡« «Γ¬«ααÑ¬Γ¿α«óáΓ∞ ñ¿ß¬«-
- óδÑ í½«¬¿, ßπ»Ñαí½«¬ ¿ ¿¡ñѬßδ Γ«½∞¬« ñ½∩ ñѼ«¡Γ¿απѼ«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ,
- «ñ¡á¬« ó µÑ½∩σ ß«σαá¡Ñ¡¿∩ »αÑѼßΓóÑ¡¡«ßΓ¿ ¿º¼Ñ¡Ñ¡¿⌐
- ∩ñα« óδ»«½¡∩ÑΓ á¡á½«ú¿τ¡δÑ ñÑ⌐ßΓó¿∩ ñ½∩ óßÑ⌐ ß¿ßΓѼδ ó µÑ½«¼. çáΓѼ ∩ñα« «ß-
- ó«í«ªñáÑΓ ¬«α¡Ñó«⌐ ¿¡ñÑ¬ß ¼«¡Γ¿α«óá¡¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ, πñÑনóáѼδ⌐ ß ¼«-
- ¼Ñ¡Γá »Ñαó«ú« «íαáΘÑ¡¿∩ ¬ ¡Ñ¼π ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ mount, ¿ ºá»π߬á-
-
-
- 118
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ umount │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ¿¼∩ ߻ѵ¿á½∞¡«ú« Σá⌐½á, ß««ΓóÑΓßΓóπε- │
- │ ΘÑú« ñѼ«¡Γ¿απѼ«⌐ Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: «ΓßπΓßΓóπÑΓ │
- │ { │
- │ Ñß½¿ (»«½∞º«óáΓѽ∞ ¡Ñ ∩ó½∩ÑΓß∩ ßπ»Ñα»«½∞º«óáΓѽѼ) │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß ß»Ñµ¿á½∞¡«ú« Σá⌐½á (á½ú«α¿Γ¼ namei); │
- │ ¿ºó½Ñτ∞ ßΓáαΦ¿⌐ ¿ ¼½áñΦ¿⌐ ¡«¼Ñαá ñѼ«¡Γ¿απѼ«ú« πßΓα«⌐-│
- │ ßΓóá; │
- │ »«½πτ¿Γ∞ ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩ ºá»¿ß∞ ñ½∩ ñѼ«¡Γ¿απÑ- │
- │ ¼«⌐ ß¿ßΓѼδ, ¿ßσ«ñ∩ ¿º ßΓáαΦÑú« ¿ ¼½áñΦÑú« ¡«¼Ñα«ó; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß ß»Ñµ¿á½∞¡«ú« Σá⌐½á (á½ú«α¿Γ¼ iput); │
- │ πñ὿Γ∞ ¿º Γáí½¿µδ «í½áßΓÑ⌐ ºá»¿ß¿ ß αáºñѽ∩Ñ¼δ¼ ΓѬß- │
- │ Γ«¼ ñ½∩ Σá⌐½«ó, »α¿¡áñ½ÑªáΘ¿σ Σá⌐½«ó«⌐ │
- │ ß¿ßΓѼÑ; /* ú½áóá 7σσσ */ │
- │ ߬«ααÑ¬Γ¿α«óáΓ∞ ßπ»Ñαí½«¬, ¿¡ñѬßδ, óδúαπº¿Γ∞ íπΣÑαδ │
- │ ¡á ñ¿ß¬; │
- │ Ñß½¿ (¬á¬¿Ñ-Γ« Σá⌐½δ ¿º Σá⌐½«ó«⌐ ß¿ßΓѼδ óßÑ ÑΘÑ ¿ß- │
- │ »«½∞ºπεΓß∩) │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ »«½πτ¿Γ∞ ¿º Γáí½¿µδ ¼«¡Γ¿α«óá¡¿∩ ¬«α¡Ñó«⌐ ¿¡ñÑ¬ß ¼«¡Γ¿-│
- │ α«óá¡¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ; │
- │ ºáí½«¬¿α«óáΓ∞ ¿¡ñѬß; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ iput); /* iget íδ½ »α¿ │
- │ ¼«¡Γ¿α«óá¡¿¿ */ │
- │ ºá»πßΓ¿Γ∞ »α«µÑñπαπ ºá¬αδΓ¿∩ ñ½∩ ߻ѵ¿á½∞¡«ú« πßΓα«⌐- │
- │ ßΓóá; │
- │ ßñѽáΓ∞ ¡ÑñÑ⌐ßΓó¿Γѽ∞¡δ¼¿ («Γ¼Ñ¡¿Γ∞) ó »π½Ñ íπΣÑαδ ¿º │
- │ ñѼ«¡Γ¿απѼ«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ; │
- │ »«½πτ¿Γ∞ ¿º Γáí½¿µδ ¼«¡Γ¿α«óá¡¿∩ ¿¡ñÑ¬ß Γ«τ¬¿ ¼«¡Γ¿α«- │
- │ óá¡¿∩; │
- │ ºáí½«¬¿α«óáΓ∞ ¿¡ñѬß; │
- │ «τ¿ßΓ¿Γ∞ Σ½áú, »«¼ÑτáεΘ¿⌐ ¿¡ñÑ¬ß ¬á¬ "Γ«τ¬π ¼«¡Γ¿α«óá- │
- │ ¡¿∩"; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ iput); /* iget íδ½ »α¿ │
- │ ¼«¡Γ¿α«óá¡¿¿ */ │
- │ «ßó«í«ñ¿Γ∞ íπΣÑα, ¿ß»«½∞ºπѼδ⌐ »«ñ ßπ»Ñαí½«¬; │
- │ «ßó«í«ñ¿Γ∞ ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩ ¼ÑßΓ«, ºá¡∩Γ«Ñ αá¡ÑÑ;│
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.27. ǽú«α¿Γ¼ ñѼ«¡Γ¿α«óá¡¿∩ Σá⌐½«ó«⌐ ß¿ßΓѼδ
-
-
-
- ÑΓ ¿º ñαá⌐óÑαá »α«µÑñπαπ ºá¬αδΓ¿∩ πßΓα«⌐ßΓóá, ß«ñÑαªáΘÑú« Σá⌐½«óπε ß¿ßΓѼπ.
- 黫߽ÑñßΓó¿¿ ∩ñα« »α«ß¼áΓα¿óáÑΓ íπΣÑαδ ó íπΣÑα¡«¼ ¬ÑΦÑ ¿ ñѽáÑΓ ¡ÑñÑ⌐ßΓó¿-
- Γѽ∞¡δ¼¿ ΓÑ ¿º ¡¿σ, ó ¬«Γ«αδσ ¡áσ«ñ∩Γß∩ í½«¬¿ ñѼ«¡Γ¿απѼ«⌐ Σá⌐½«ó«⌐ ß¿ßΓÑ-
- ¼δ; ó σαá¡Ñ¡¿¿ ¿¡Σ«α¼áµ¿¿ ¿º φΓ¿σ í½«¬«ó ó ¬ÑΦÑ í«½∞ΦÑ ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿.
- äѽá∩ íπΣÑαδ ¡ÑñÑ⌐ßΓó¿Γѽ∞¡δ¼¿, ∩ñα« óßΓáó½∩ÑΓ ¿σ ó ¡áτὫ ß»¿ß¬á ßó«í«ñ¡δσ
- íπΣÑα«ó, ó Γ« óαѼ∩ ¬á¬ í½«¬¿ ß á¬Γπá½∞¡«⌐ ¿¡Σ«α¼áµ¿Ñ⌐ «ßΓáεΓß∩ ó íπΣÑα¡«¼
- ¬ÑΦÑ. ƒñα« ßíαáßδóáÑΓ ó ¿¡ñѬßÑ ß¿ßΓѼδ, úñÑ »α«¿ºó«ñ¿½«ß∞ ¼«¡Γ¿α«óá¡¿Ñ,
- Σ½áú "Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩", πßΓá¡«ó½Ñ¡¡δ⌐ Σπ¡¬µ¿Ñ⌐ mount, ¿ «ßó«í«ªñáÑΓ ¿¡-
- ñѬß. Å«¼ÑΓ¿ó ºá»¿ß∞ ó Γáí½¿µÑ ¼«¡Γ¿α«óá¡¿∩ ßó«í«ñ¡«⌐ ñ½∩ «íΘÑú« ¿ß»«½∞º«óá-
- ¡¿∩, Σπ¡¬µ¿∩ umount ºáóÑαΦáÑΓ αáí«Γπ.
-
-
-
- 119
-
- /
- │
- usr
- ┌────────────┴─────────────┐
- │ │
- src include
- │ ┌────┴────┐
- uts sys realfile.h
- │ ∙ ∙
- sys ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ ∙
- ┌───────┴───────┐ ∙
- inode.h testfile.h ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
-
- É¿ßπ¡«¬ 5.28. öá⌐½δ ó ñÑαÑóÑ Σá⌐½«ó«⌐ ß¿ßΓѼδ, ßó∩ºá¡¡δÑ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ link
-
-
- E5.15 LINKF
-
- æ¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ link ßó∩ºδóáÑΓ Σá⌐½ ß ¡«óδ¼ ¿¼Ñ¡Ñ¼ ó ßΓαπ¬ΓπαÑ ¬áΓὫ-
- ú«ó Σá⌐½«ó«⌐ ß¿ßΓѼδ, ß«ºñáóá∩ ñ½∩ ßπΘÑßΓóπεΘÑú« ¿¡ñѬßá ¡«óπε ºá»¿ß∞ ó ¬á-
- ΓὫúÑ. æ¿¡Γá¬ß¿ß ó맮óá Σπ¡¬µ¿¿ link:
-
- link(source file name, target file name);
-
- úñÑ source file name - ßπΘÑßΓóπεΘÑÑ ¿¼∩ Σá⌐½á, á target file name - ¡«ó«Ñ
- (ñ«»«½¡¿Γѽ∞¡«Ñ) ¿¼∩, »α¿ßóá¿óáѼ«Ñ Σá⌐½π »«ß½Ñ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ link.
- öá⌐½«óá∩ ß¿ßΓѼá σαá¡¿Γ ¿¼∩ »πΓ¿ »«¿ß¬á ñ½∩ ¬áªñ«⌐ ßó∩º¿, ¿¼ÑεΘÑ⌐ß∩ π Σá⌐½á,
- ¿ »α«µÑßßδ ¼«úπΓ «íαáΘáΓ∞ß∩ ¬ Σá⌐½π »« ½εí«¼π ¿º φΓ¿σ ¿¼Ñ¡. ƒñα« ¡Ñ º¡áÑΓ,
- ¬á¬«Ñ ¿º ¿¼Ñ¡ Σá⌐½á ∩ó½∩ÑΓß∩ Ñú« »«ñ½¿¡¡δ¼ ¿¼Ñ¡Ñ¼, »«φΓ«¼π ¿¼∩ Σá⌐½á ߻ѵ¿-
- á½∞¡« ¡Ñ «íαáíáΓδóáÑΓß∩. ìá»α¿¼Ñα, »«ß½Ñ óδ»«½¡Ñ¡¿∩ ¡áí«αá Σπ¡¬µ¿⌐:
-
- link("/usr/src/uts/sys","/usr/include/sys");
- link("/usr/include/realfile.h","/usr/src/uts/sys/testfile.h");
-
- ¡á «ñ¿¡ ¿ ëà ªÑ Σá⌐½ íπñπΓ π¬áºδóáΓ∞ Γα¿ ¿¼Ñ¡¿ »πΓ¿ »«¿ß¬á:
-
- "/usr/src/uts/sys/testfile.h", "/usr/include/sys/testfile.h" ¿
- "/usr/include/realfile" (ß¼. É¿ßπ¡«¬ 5.28).
-
- ƒñα« »«ºó«½∩ÑΓ ßπ»Ñα»«½∞º«óáΓѽε (¿ Γ«½∞¬« Ѽπ) ßó∩ºδóáΓ∞ ¬áΓὫú¿, π»-
- α«Θá∩ ¡á»¿ßá¡¿Ñ »α«úαá¼¼, ΓαÑíπεΘ¿σ »ÑαÑßÑτÑ¡¿∩ ñÑαÑóá Σá⌐½«ó«⌐ ß¿ßΓѼδ. àß-
- ½¿ íδ φΓ« í佫 αáºαÑΦÑ¡« »α«¿ºó«½∞¡«¼π »«½∞º«óáΓѽε, »α«úαá¼¼á¼, »ÑαÑßѬáε-
- Θ¿¼ ¿Ñαáασ¿τÑ߬πε ßΓαπ¬Γπαπ Σá⌐½«ó, »α¿Φ½«ß∞ íδ ºáí«Γ¿Γ∞ß∩ « Γ«¼, τΓ«íδ ¡Ñ
- »«»áßΓ∞ ó íÑ߬«¡Ñτ¡δ⌐ µ¿¬½ ó Γ«¼ ß½πτáÑ, Ñß½¿ »«½∞º«óáΓѽ∞ ßó∩ºá½ ¬áΓὫú ß
- óÑαΦ¿¡«⌐, ßΓ«∩ΘÑ⌐ ¡¿ªÑ ó ¿Ñαáασ¿¿. ÅαÑñ»«½áúáÑΓß∩, τΓ« ßπ»Ñα»«½∞º«óáΓѽ¿ í«-
- ½ÑÑ «ßë᫪¡δ ó π¬áºá¡¿¿ Γᬿσ ßó∩ºÑ⌐. 髺¼«ª¡«ßΓ∞ ßó∩ºδóáΓ∞ ¼Ñªñπ ß«í«⌐ ¬á-
- ΓὫú¿ ñ«½ª¡á íδ½á »«ññÑনóáΓ∞ß∩ ó αá¡¡¿σ óÑαß¿∩σ ß¿ßΓѼδ, Γᬠ¬á¬ φΓá ó«º-
- ¼«ª¡«ßΓ∞ ΓαÑíπÑΓß∩ ñ½∩ αÑ὿ºáµ¿¿ ¬«¼á¡ñδ mkdir, ¬«Γ«αá∩ ß«ºñáÑΓ ¡«óδ⌐ ¬áΓá-
- ½«ú. 鬽ετÑ¡¿Ñ Σπ¡¬µ¿¿ mkdir πßΓαá¡∩ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ó ßó∩ºδóá¡¿¿ ¬áΓὫú«ó.
- ìá É¿ßπ¡¬Ñ 5.29 »«¬áºá¡ á½ú«α¿Γ¼ Σπ¡¬µ¿¿ link. æ¡áτá½á ∩ñα«, ¿ß»«½∞ºπ∩
- á½ú«α¿Γ¼ namei, «»αÑñѽ∩ÑΓ ¼ÑßΓ«¡áσ«ªñÑ¡¿Ñ ¿¡ñѬßá ¿ßσ«ñ¡«ú« Σá⌐½á, πóѽ¿τ¿-
- óáÑΓ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßó∩ºÑ⌐ ó ¿¡ñѬßÑ, ¬«ααÑ¬Γ¿απÑΓ ñ¿ß¬«óπε ¬«»¿ε ¿¡ñѬßá
- (ñ½∩ «íÑß»ÑτÑ¡¿∩ ß«ú½áß«óá¡¡«ßΓ¿) ¿ ß¡¿¼áÑΓ ß ¿¡ñѬßá í½«¬¿α«ó¬π. çáΓѼ ∩ñα«
- ¿ΘÑΓ Σá⌐½ ß ¡«óδ¼ ¿¼Ñ¡Ñ¼; Ñß½¿ «¡ ßπΘÑßΓóπÑΓ, Σπ¡¬µ¿∩ link ºáóÑαΦáÑΓß∩ ¡Ñπ-
- ñáτ¡« ¿ ∩ñα« ó«ßßΓá¡áó½¿óáÑΓ »αѪ¡ÑÑ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßó∩ºÑ⌐, ¿º¼Ñ¡Ñ¡¡«Ñ
- αá¡ÑÑ. é »α«Γ¿ó¡«¼ ß½πτáÑ ∩ñα« ¡áσ«ñ¿Γ ó α«ñ¿Γѽ∞߬«¼ ¬áΓὫúÑ ßó«í«ñ¡πε ºá-
- »¿ß∞ ñ½∩ Σá⌐½á ß ¡«óδ¼ ¿¼Ñ¡Ñ¼, ºá»¿ßδóáÑΓ ó ¡ÑÑ ¡«ó«Ñ ¿¼∩ ¿ ¡«¼Ñα ¿¡ñѬßá
- ¿ßσ«ñ¡«ú« Σá⌐½á ¿ «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá, ¿ß»«½∞ºπ∩ á½ú«-
-
- 120
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ link │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ßπΘÑßΓóπεΘÑÑ ¿¼∩ Σá⌐½á │
- │ ¡«ó«Ñ ¿¼∩ Σá⌐½á │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: «ΓßπΓßΓóπÑΓ │
- │ { │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß ñ½∩ ßπΘÑßΓóπεΘÑú« ¿¼Ñ¡¿ Σá⌐½á (á½ú«α¿Γ¼ │
- │ namei); │
- │ Ñß½¿ (π Σá⌐½á ß½¿Φ¬«¼ ¼¡«ú« ßó∩ºÑ⌐ ¿½¿ »α«¿ºó«ñ¿Γß∩ │
- │ ßó∩ºδóá¡¿Ñ ¬áΓὫúá íѺ αáºαÑΦÑ¡¿∩ ßπ»Ñα»«½∞º«óáΓѽ∩) │
- │ { │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ iput); │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ } │
- │ πóѽ¿τ¿Γ∞ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßó∩ºÑ⌐ ó ¿¡ñѬßÑ; │
- │ «Γ¬«ααÑ¬Γ¿α«óáΓ∞ ñ¿ß¬«óπε ¬«»¿ε ¿¡ñѬßá; │
- │ ß¡∩Γ∞ í½«¬¿α«ó¬π ß ¿¡ñѬßá; │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá ñ½∩ ó¬½ετÑ¡¿∩ ¡«-│
- │ ó«ú« ¿¼Ñ¡¿ Σá⌐½á (á½ú«α¿Γ¼ namei); │
- │ Ñß½¿ (Σá⌐½ ß ¡«óδ¼ ¿¼Ñ¡Ñ¼ πªÑ ßπΘÑßΓóπÑΓ ¿½¿ ßπΘÑßΓóπε- │
- │ Θ¿⌐ Σá⌐½ ¿ ¡«óδ⌐ Σá⌐½ ¡áσ«ñ∩Γß∩ ó αạδσ Σá⌐½«óδσ ß¿ß- │
- │ ΓѼáσ) │
- │ { │
- │ «Γ¼Ñ¡¿Γ∞ ¬«ααÑ¬Γ¿α«ó¬π, ßñѽᡡπε óδΦÑ; │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ } │
- │ ß«ºñáΓ∞ ºá»¿ß∞ ó α«ñ¿Γѽ∞߬«¼ ¬áΓὫúÑ ñ½∩ Σá⌐½á ß ¡«- │
- │ óδ¼ ¿¼Ñ¡Ñ¼: │
- │ ó¬½ετ¿Γ∞ ó ¡ÑÑ ¡«ó«Ñ ¿¼∩ ¿ ¡«¼Ñα ¿¡ñѬßá ßπΘÑßΓóπε- │
- │ ΘÑú« Σá⌐½á; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá (á½ú«α¿Γ¼ │
- │ iput); │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß ßπΘÑßΓóπεΘÑú« Σá⌐½á (á½ú«α¿Γ¼ iput); │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.29. ǽú«α¿Γ¼ ßó∩ºδóá¡¿∩ Σá⌐½«ó
-
-
- α¿Γ¼ iput. ū߬«½∞¬π Σá⌐½ ß ¡«óδ¼ ¿¼Ñ¡Ñ¼ αá¡ÑÑ ¡Ñ ßπΘÑßΓó«óá½, «ßó«í«ªñáΓ∞
- ÑΘÑ ¬á¬«⌐-¡¿íπñ∞ ¿¡ñÑ¬ß ¡Ñ ¡πª¡«. ƒñα«, «ßó«í«ªñá∩ ¿¡ñÑ¬ß ¿ßσ«ñ¡«ú« Σá⌐½á,
- ñѽáÑΓ ºá¬½ετÑ¡¿Ñ: ßτÑΓτ¿¬ ßó∩ºÑ⌐ ó ¿¡ñѬßÑ ¿¼ÑÑΓ º¡áτÑ¡¿Ñ, ¡á 1 í«½∞ΦÑÑ,
- τѼ Γ« º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ ßτÑΓτ¿¬ ¿¼Ñ½ »ÑαÑñ óδº«ó«¼ Σπ¡¬µ¿¿, ¿ «íαáΘÑ¡¿Ñ ¬
- Σá⌐½π ΓÑ»Ñα∞ ¼«ªÑΓ »α«¿ºó«ñ¿Γ∞ß∩ »« ÑΘÑ «ñ¡«¼π ¿¼Ñ¡¿ ó Σá⌐½«ó«⌐ ß¿ßΓѼÑ.
- æτÑΓτ¿¬ ßó∩ºÑ⌐ σαá¡¿Γ ¬«½¿τÑßΓó« ºá»¿ßÑ⌐ ó ¬áΓὫúáσ, ¬«Γ«αδÑ (ºá»¿ß¿) π¬á-
- ºδóáεΓ ¡á Σá⌐½, ¿ ΓѼ ßá¼δ¼ «Γ½¿τáÑΓß∩ «Γ ßτÑΓτ¿¬á ßß佫¬ ó ¿¡ñѬßÑ. àß½¿ »«
- ºáóÑαΦÑ¡¿¿ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ link ¬ Σá⌐½π ¡ÑΓ «íαáΘÑ¡¿⌐ ß« ßΓ«α«¡δ ñαπú¿σ
- »α«µÑßß«ó, ßτÑΓτ¿¬ ßß佫¬ ó ¿¡ñѬßÑ »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ, αáó¡«Ñ 0, á ßτÑΓτ¿¬
- ßó∩ºÑ⌐ - º¡áτÑ¡¿Ñ, í«½∞ΦÑÑ ¿½¿ αáó¡«Ñ 2.
- ìá»α¿¼Ñα, óδ»«½¡∩∩ Σπ¡¬µ¿ε, óδºóá¡¡πε ¬á¬:
- link("source","/dir/target");
-
- ∩ñα« «í¡áαπª¿óáÑΓ ¿¡ñÑ¬ß ñ½∩ Σá⌐½á "source", πóѽ¿τ¿óáÑΓ ó ¡Ñ¼ º¡áτÑ¡¿Ñ
- ßτÑΓτ¿¬á ßó∩ºÑ⌐, ºá»«¼¿¡áÑΓ ¡«¼Ñα ¿¡ñѬßá, ߬áªÑ¼ 74, ¿ ß¡¿¼áÑΓ ß ¿¡ñѬßá
- í½«¬¿α«ó¬π. ƒñα« Γá¬ªÑ ¡áσ«ñ¿Γ ¿¡ñÑ¬ß ¬áΓὫúá "dir", ∩ó½∩εΘÑú«ß∩ α«ñ¿Γѽ∞-
- ߬¿¼ ¬áΓὫú«¼ ñ½∩ Σá⌐½á "target", ¿ΘÑΓ ßó«í«ñ¡«Ñ ¼ÑßΓ« ó ¬áΓὫúÑ "dir" ¿
- ºá»¿ßδóáÑΓ ó ¡Ñú« ¿¼∩ Σá⌐½á "target" ¿ ¡«¼Ñα ¿¡ñѬßá 74. Å« «¬«¡τá¡¿¿ φΓ¿σ
- ñÑ⌐ßΓó¿⌐ «¡« «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß Σá⌐½á "source" »« á½ú«α¿Γ¼π iput. àß½¿ º¡á-
- τÑ¡¿Ñ ßτÑΓτ¿¬á ßó∩ºÑ⌐ Σá⌐½á "source" αá¡∞ΦÑ í佫 αáó¡« 1, Γ« ΓÑ»Ñα∞ «¡« αáó-
-
- 121
-
- ¡« 2.
- æΓ«¿Γ π»«¼∩¡πΓ∞ « ñóπσ Γπ»¿¬«óδσ ß¿Γπᵿ∩σ, ∩ó¿óΦ¿σß∩ »α¿τ¿¡«⌐ Γ«ú«, τΓ«
- »α«µÑßß ß¡¿¼áÑΓ ß ¿¡ñѬßá ¿ßσ«ñ¡«ú« Σá⌐½á í½«¬¿α«ó¬π »«ß½Ñ πóѽ¿τÑ¡¿∩ º¡áτÑ-
- ¡¿∩ ßτÑΓτ¿¬á ßó∩ºÑ⌐. àß½¿ íδ ∩ñα« ¡Ñ ß¡¿¼á½« ß ¿¡ñѬßá í½«¬¿α«ó¬π, ñóá »α«-
- µÑßßá, óδ»«½¡∩εΘ¿Ñ «ñ¡«óαѼѡ¡« ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿¿:
-
- »α«µÑßß A: link("a/b/c/d","e/f/g");
- »α«µÑßß B: link("e/f","a/b/c/d/ee");
-
- ºáΦ½¿ íδ ó Γπ»¿¬ (óºá¿¼¡á∩ í½«¬¿α«ó¬á). ÅαÑñ»«½«ª¿¼, τΓ« »α«µÑßß A «í¡áαπª¿½
- ¿¡ñÑ¬ß Σá⌐½á "a/b/c/d" ó ëà ßá¼δ⌐ ¼«¼Ñ¡Γ, ¬«úñá »α«µÑßß B «í¡áαπª¿½ ¿¡ñѬß
- Σá⌐½á "e/f". öαáºá "ó ëà ªÑ ßá¼δ⌐ ¼«¼Ñ¡Γ" «º¡áτáÑΓ, τΓ« ß¿ßΓѼ«⌐ ñ«ßΓ¿ú¡πΓ«
- ß«ßΓ«∩¡¿Ñ, »α¿ ¬«Γ«α«¼ ¬áªñδ⌐ »α«µÑßß »«½πτ¿½ ¿ß¬«¼δ⌐ ¿¡ñѬß. (É¿ßπ¡«¬ 5.30
- ¿½½εßΓα¿απÑΓ ßΓáñ¿¿ óδ»«½¡Ñ¡¿∩ »α«µÑßß«ó.) è«úñá ªÑ ΓÑ»Ñα∞ »α«µÑßß A »«»δΓá-
- ÑΓß∩ »«½πτ¿Γ∞ ¿¡ñÑ¬ß Σá⌐½á "e/f", «¡ »α¿«ßΓá¡«ó¿Γ ßó«Ñ óδ»«½¡Ñ¡¿Ñ ñ« ΓÑσ
- »«α, »«¬á ¿¡ñÑ¬ß Σá⌐½á "f" ¡Ñ «ßó«í«ñ¿Γß∩. é Γ« ªÑ óαѼ∩ »α«µÑßß B »δΓáÑΓß∩
- »«½πτ¿Γ∞ ¿¡ñÑ¬ß ¬áΓὫúá "a/b/c/d" ¿ »α¿«ßΓá¡áó½¿óáÑΓß∩ ó «ª¿ñá¡¿¿ «ßó«í«ª-
- ñÑ¡¿∩ ¿¡ñѬßá Σá⌐½á "d". Åα«µÑßß A íπñÑΓ πñÑনóáΓ∞ ºáí½«¬¿α«óá¡¡δ¼ ¿¡ñѬß,
- ¡πª¡δ⌐ »α«µÑßßπ B, á »α«µÑßß B, ó ßó«ε «τÑαÑñ∞, íπñÑΓ πñÑনóáΓ∞ ºáí½«¬¿α«-
- óá¡¡δ¼ ¿¡ñѬß, ¡πª¡δ⌐ »α«µÑßßπ A. ìá »αá¬Γ¿¬Ñ φëà ¬½áßß¿τÑ߬¿⌐ »α¿¼Ñα óºá-
- ¿¼¡«⌐ í½«¬¿α«ó¬¿ ¡Ñ󫺼«ªÑ¡ í½áú«ñáα∩ Γ«¼π, τΓ« ∩ñα« «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß ¿ß-
- σ«ñ¡«ú« Σá⌐½á »«ß½Ñ πóѽ¿τÑ¡¿∩ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á ßó∩ºÑ⌐. ū߬«½∞¬π »Ñαóδ⌐ ¿º
- αÑßπαß«ó (¿¡ñѬß) ßó«í«ñÑ¡ »α¿ «íαáΘÑ¡¿¿ ¬ ß½ÑñπεΘѼπ αÑßπαßπ, óºá¿¼¡á∩ í½«-
- ¬¿α«ó¬á ¡Ñ »α«¿ßσ«ñ¿Γ.
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬áºδóáÑΓ, ¬á¬ ñóá »α«µÑßßá ¼«úπΓ ºá⌐Γ¿ ó Γπ»¿¬, Ñß½¿
- ß ¿¡ñѬßá ¡Ñ íδ½á ß¡∩Γá í½«¬¿α«ó¬á. Äñ¿¡«τ¡δ⌐ »α«µÑßß ¼«ªÑΓ Γá¬ªÑ ºáí½«¬¿α«-
- óáΓ∞ ßἫú« ßÑí∩. àß½¿ «¡ óδºδóáÑΓ Σπ¡¬µ¿ε:
-
- link("a/b/c","a/b/c/d");
-
- Γ« ó ¡áτá½Ñ á½ú«α¿Γ¼á «¡ »«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ Σá⌐½á "c"; Ñß½¿ íδ ∩ñα« ¡Ñ ß¡¿-
- ¼á½« íδ ß ¿¡ñѬßá í½«¬¿α«ó¬π, »α«µÑßß ºáΦѽ íδ ó Γπ»¿¬, ºá»α«ß¿ó ¿¡ñÑ¬ß "c"
- »α¿ »«¿ß¬Ñ Σá⌐½á "d". àß½¿ íδ ñóá »α«µÑßßá, ¿½¿ ñáªÑ «ñ¿¡ »α«µÑßß, ¡Ñ ¼«ú½¿
- »α«ñ«½ªáΓ∞ ßó«Ñ óδ»«½¡Ñ¡¿Ñ ¿º-ºá óºá¿¼¡«⌐ í½«¬¿α«ó¬¿ (¿½¿ ßá¼«í½«¬¿α«ó¬¿),
- τΓ« ó αѺπ½∞ΓáΓÑ »α«¿º«Φ½« íδ ó ß¿ßΓÑ¼Ñ ? ū߬«½∞¬π ¿¡ñѬßδ ∩ó½∩εΓß∩ ΓѼ¿
- αÑßπαßἿ, ¬«Γ«αδÑ »αÑñ«ßΓáó½∩εΓß∩ ß¿ßΓѼ«⌐ ºá ¬«¡Ñτ¡«Ñ óαѼ∩, »«½πτÑ¡¿Ñ
- ß¿ú¡á½á ¡Ñ ¼«ªÑΓ íδΓ∞ »α¿τ¿¡«⌐ ó«º«í¡«ó½Ñ¡¿∩ »α«µÑßß«¼ ßó«Ñ⌐ αáí«Γδ (ú½áóá
- 7). æ½Ññ«óáΓѽ∞¡«, ß¿ßΓÑ¼á ¡Ñ ¼«ªÑΓ óδ⌐Γ¿ ¿º Γπ»¿¬á íѺ »ÑαѺáúαπº¬¿. àß½¿ ¬
- Σá⌐½á¼, ºáí½«¬¿α«óá¡¡δ¼ »α«µÑßßἿ, ¡ÑΓ «íαáΘÑ¡¿⌐ ß« ßΓ«α«¡δ ñαπú¿σ »α«µÑß-
- ß«ó, óºá¿¼¡á∩ í½«¬¿α«ó¬á ¡Ñ ºáΓαáú¿óáÑΓ «ßΓá½∞¡δÑ »α«µÑßßδ ó ß¿ßΓѼÑ. Äñ¡á-
- ¬«, ½εíδÑ »α«µÑßßδ,
- «íαáΓ¿óΦ¿Ñß∩ ¬ φΓ¿¼ Σá⌐½á¼ (¿½¿ «íαáΓ¿óΦ¿Ñß∩ ¬ ñαπú¿¼ Σá⌐½á¼ τÑαѺ ºáí½«¬¿-
- α«óá¡¡δ⌐ ¬áΓὫú), ¡Ñ»αѼѡ¡« ºá⌐ñπΓ ó Γπ»¿¬. Æá¬¿¼ «íαẫ¼, Ñß½¿ ºáí½«¬¿α«-
- óá¡δ Σá⌐½δ "/bin" ¿½¿ "/usr/bin" («íδτ¡δÑ σαá¡¿½¿Θá ¬«¼á¡ñ) ¿½¿ Σá⌐½
- "/bin/sh" (¬«¼á¡ñ¡δ⌐ »α«µÑßß«α shell), »«ß½ÑñßΓó¿∩ ñ½∩ ß¿ßΓѼδ íπñπΓ ú¿íѽ∞-
- ¡δ¼¿.
-
-
- E5.16 UNLINKF
-
- æ¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ unlink πñá½∩ÑΓ ¿º ¬áΓὫúá Γ«τ¬π óσ«ñá ñ½∩ Σá⌐½á. æ¿¡-
- Γá¬ß¿ß ó맮óá Σπ¡¬µ¿¿ unlink:
-
- unlink(pathname);
-
- úñÑ pathname π¬áºδóáÑΓ ¿¼∩ Σá⌐½á, πñá½∩Ѽ«Ñ ¿º ¿Ñαáασ¿¿ ¬áΓὫú«ó. àß½¿ »α«-
- µÑßß αáºαδóáÑΓ ñá¡¡πε ßó∩º∞ Σá⌐½á ß ¬áΓὫú«¼ »α¿ »«¼«Θ¿ Σπ¡¬µ¿¿ unlink, »«
- π¬áºá¡¡«¼π ó ó맮óÑ Σπ¡¬µ¿¿ ¿¼Ñ¡¿ Σá⌐½ ¡Ñ íπñÑΓ ñ«ßΓπ»Ñ¡, »«¬á ó ¬áΓὫúÑ ¡Ñ
-
-
- 122
-
- Åα«µÑßß A Åα«µÑßß B
- ┌─────────────────────────────────────────────────────────────
- │ ∙ ÅδΓáÑΓß∩ »«½πτ¿Γ∞ ¿¡ñѬß
- │ ∙ ñ½∩ Σá⌐½á "e"
- │ ∙ ÅÉêÄæÆÇìÄé - ¿¡ñÑ¬ß Σá⌐½á
- │ ∙ "e" ºáí½«¬¿α«óá¡
- │ Å«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ "a" ∙
- │ Äßó«í«ªñáÑΓ ¿¡ñÑ¬ß "a" ∙
- │ Å«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ "b" ∙
- │ Äßó«í«ªñáÑΓ ¿¡ñÑ¬ß "b" ∙
- │ Å«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ "c" ∙
- │ Äßó«í«ªñáÑΓ ¿¡ñÑ¬ß "c" ∙
- │ Å«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ "d" ∙
- │ ∙
- │ ÅδΓáÑΓß∩ »«½πτ¿Γ∞ ¿¡ñÑ¬ß ∙
- │ ñ½∩ "e" ∙
- │ ÅÉêÄæÆÇìÄé - ¿¡ñÑ¬ß Σá⌐½á ∙
- │ "e" ºáí½«¬¿α«óá¡ ∙
- │ ∙ ∙
- │ ┌───────────────────────────────────────────────┐
- │ │ 髺«í¡«ó½Ñ¡¿Ñ óδ»«½¡Ñ¡¿∩ - ¿¡ñÑ¬ß Σá⌐½á "e" │
- │ │ αáºí½«¬¿α«óá¡ │
- │ └───────────────────────────────────────────────┘
- │ ∙ Å«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ "e"
- │ ∙ Äßó«í«ªñáÑΓ ¿¡ñÑ¬ß "e"
- │ ∙ Å«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ "f"
- │ ∙ Å«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ "a"
- │ ∙ Äßó«í«ªñáÑΓ ¿¡ñÑ¬ß "a"
- │ ∙ ∙
- │ ∙ ∙
- │ ∙ ÅδΓáÑΓß∩ »«½πτ¿Γ∞ ¿¡ñѬß
- │ ∙ ñ½∩ Σá⌐½á "d"
- │ ∙ ÅÉêÄæÆÇìÄé - ¿¡ñÑ¬ß Σá⌐½á
- │ ∙ "d" ºáí½«¬¿α«óá¡
- │ ∙ »α«µÑßß«¼ A
- │ ∙
- │ Å«½πτáÑΓ ¿¡ñÑ¬ß ñ½∩ "e"
- │ Äßó«í«ªñáÑΓ ¿¡ñÑ¬ß "e"
- │ ÅδΓáÑΓß∩ »«½πτ¿Γ∞ ¿¡ñѬß
- │ ñ½∩ "f"
- │ ÅÉêÄæÆÇìÄé - ¿¡ñÑ¬ß Σá⌐½á
- │ "f" ºáí½«¬¿α«óá¡
- │ »α«µÑßß«¼ B
- │ ┌───────────────────────────────┐
- │ │ Æπ»¿¬ (óºá¿¼¡á∩ í½«¬¿α«ó¬á) │
- v └───────────────────────────────┘
- éαѼ∩
-
- É¿ßπ¡«¬ 5.30. éºá¿¼¡á∩ í½«¬¿α«ó¬á »α«µÑßß«ó »α¿ óδ»«½¡Ñ¡¿¿
- Σπ¡¬µ¿¿ link
-
- ß«ºñá¡á ÑΘÑ «ñ¡á ºá»¿ß∞ ß φΓ¿¼ ¿¼Ñ¡Ñ¼. ìá»α¿¼Ñα, »α¿ óδ»«½¡Ñ¡¿¿ ß½ÑñπεΘÑú«
- Σαáú¼Ñ¡Γá »α«úαá¼¼δ:
-
- unlink("myfile");
- fd = open("myfile",O_RDONLY);
-
- Σπ¡¬µ¿∩ open ºáóÑαΦ¿Γß∩ ¡Ñπñáτ¡«, »«ß¬«½∞¬π ¬ ¼«¼Ñ¡Γπ ÑÑ óδ»«½¡Ñ¡¿∩ ó ΓѬπ-
- ΘѼ ¬áΓὫúÑ í«½∞ΦÑ ¡Ñ íπñÑΓ Σá⌐½á ß ¿¼Ñ¡Ñ¼ myfile. àß½¿ πñá½∩Ѽ«Ñ ¿¼∩ ∩ó½∩-
-
- 123
-
- ÑΓß∩ »«ß½Ññ¡Ñ⌐ ßó∩º∞ε Σá⌐½á ß ¬áΓὫú«¼, ∩ñα« ó ¿Γ«úÑ «ßó«í«ªñáÑΓ óßÑ ¿¡Σ«α-
- ¼áµ¿«¡¡δÑ í½«¬¿ Σá⌐½á. Äñ¡á¬«, Ñß½¿ π Σá⌐½á í佫 ¡Ñ߬«½∞¬« ßó∩ºÑ⌐, «¡ «ßΓá-
- ÑΓß∩ óßÑ ÑΘÑ ñ«ßΓπ»¡δ¼ »«ñ ñαπú¿¼¿ ¿¼Ñ¡á¼¿.
- ìá É¿ßπ¡¬Ñ 5.31 »αÑñßΓáó½Ñ¡ á½ú«α¿Γ¼ Σπ¡¬µ¿¿ unlink. æ¡áτá½á ñ½∩ »«¿ß¬á
- Σá⌐½á ß πñá½∩Ѽ«⌐ ßó∩º∞ε ∩ñα« ¿ß»«½∞ºπÑΓ ¼«ñ¿Σ¿¬áµ¿ε á½ú«α¿Γ¼á namei, ¬«Γ«-
- αá∩ ó¼ÑßΓ« ¿¡ñѬßá Σá⌐½á ó«ºóαáΘáÑΓ ¿¡ñÑ¬ß α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá. ƒñα« «í-
- αáΘáÑΓß∩ ¬ ¿¡ñѬßπ Σá⌐½á ó »á¼∩Γ¿, ¿ß»«½∞ºπ∩ á½ú«α¿Γ¼ iget. (Äß«íδ⌐ ß½πτá⌐,
- ßó∩ºá¡¡δ⌐ ß πñá½Ñ¡¿Ñ¼ ¿¼Ñ¡¿ Σá⌐½á ".", íπñÑΓ αáßß¼«ΓαÑ¡ ó π»α᪡ѡ¿¿). ū߽Ñ
- »α«óÑન «ΓßπΓßΓó¿∩ «Φ¿í«¬ ¿ (ñ½∩ ¿ß»«½¡∩Ѽδσ Σá⌐½«ó) πñá½Ñ¡¿∩ ¿º Γáí½¿µδ
- «í½áßΓÑ⌐ ºá»¿ßÑ⌐ ß ¡Ñá¬Γ¿ó¡δ¼ αáºñѽ∩Ñ¼δ¼ ΓѬßΓ«¼ (ú½áóá 7) ∩ñα« ßΓ¿αáÑΓ ¿¼∩
- Σá⌐½á ¿º α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá: ßñѽáΓ∞ º¡áτÑ¡¿Ñ ¡«¼Ñαá ¿¡ñѬßá αáó¡δ¼ 0
- ñ«ßΓáΓ«τ¡« ñ½∩ «τ¿ßΓ¬¿ ¼ÑßΓá, ºá¡¿¼áѼ«ú« ¿¼Ñ¡Ñ¼ Σá⌐½á ó ¬áΓὫúÑ. çáΓѼ ∩ñ-
- α« »α«¿ºó«ñ¿Γ ß¿¡σα«¡¡πε ºá»¿ß∞ ¬áΓὫúá ¡á ñ¿ß¬, úáαá¡Γ¿απ∩ ΓѼ ßá¼δ¼, τΓ«
- »«ñ ßó«¿¼ »αѪ¡¿¼ ¿¼Ñ¡Ñ¼ Σá⌐½ πªÑ ¡Ñ íπñÑΓ ñ«ßΓπ»Ñ¡, π¼Ñ¡∞ΦáÑΓ º¡áτÑ¡¿Ñ
- ßτÑΓτ¿¬á ßó∩ºÑ⌐ ¿ ß »«¼«Θ∞ε á½ú«α¿Γ¼á iput «ßó«í«ªñáÑΓ ó »á¼∩Γ¿ ¿¡ñѬßδ α«-
- ñ¿Γѽ∞߬«ú« ¬áΓὫúá ¿ Σá⌐½á ß πñá½∩Ѽ«⌐ ßó∩º∞ε.
- Åα¿ «ßó«í«ªñÑ¡¿¿ ó »á¼∩Γ¿ »« á½ú«α¿Γ¼π iput ¿¡ñѬßá Σá⌐½á ß πñá½∩Ѽ«⌐
- ßó∩º∞ε, Ñß½¿ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á ßß佫¬ ¿ ßτÑΓτ¿¬á ßó∩ºÑ⌐ ßΓá¡«ó∩Γß∩ αáó¡δ¼¿
- 0, ∩ñα« ºáí¿αáÑΓ π Σá⌐½á «íαáΓ¡« ñ¿ß¬«óδÑ í½«¬¿, ¬«Γ«αδÑ «¡ ºá¡¿¼á½. ìá φΓ«Γ
- ¿¡ñÑ¬ß í«½∞ΦÑ ¡Ñ π¬áºδóáÑΓ ¡¿ «ñ¡« ¿º Σá⌐½«óδσ ¿¼Ñ¡ ¿ ¿¡ñÑ¬ß ¡Ñá¬Γ¿óÑ¡. ä½∩
-
- ┌────────────────────────────────────────────────────────────┐
- │ á½ú«α¿Γ¼ unlink │
- │ óσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: ¿¼∩ Σá⌐½á │
- │ óδσ«ñ¡á∩ ¿¡Σ«α¼áµ¿∩: «ΓßπΓßΓóπÑΓ │
- │ { │
- │ »«½πτ¿Γ∞ α«ñ¿Γѽ∞߬¿⌐ ¿¡ñÑ¬ß ñ½∩ Σá⌐½á ß πñá½∩Ѽ«⌐ │
- │ ßó∩º∞ε (á½ú«α¿Γ¼ namei); │
- │ /* Ñß½¿ ó ¬áτÑßΓóÑ Σá⌐½á óδßΓπ»áÑΓ ΓѬπΘ¿⌐ ¬áΓὫú... */│
- │ Ñß½¿ (»«ß½Ññ¡Ñ⌐ ¬«¼»«¡Ñ¡Γ«⌐ ¿¼Ñ¡¿ Σá⌐½á ∩ó½∩ÑΓß∩ ".") │
- │ πóѽ¿τ¿Γ∞ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßß佫¬ ó ¿¡ñѬßÑ; │
- │ ó »α«Γ¿ó¡«¼ ß½πτáÑ │
- │ »«½πτ¿Γ∞ ¿¡ñÑ¬ß ñ½∩ Σá⌐½á ß πñá½∩Ѽ«⌐ ßó∩º∞ε (á½ú«-│
- │ α¿Γ¼ iget); │
- │ Ñß½¿ (Σá⌐½ ∩ó½∩ÑΓß∩ ¬áΓὫú«¼, ¡« »«½∞º«óáΓѽ∞ ¡Ñ ∩ó½∩- │
- │ ÑΓß∩ ßπ»Ñα»«½∞º«óáΓѽѼ) │
- │ { │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñѬßδ (á½ú«α¿Γ¼ iput); │
- │ ó«ºóαáΓ¿Γ∞ («Φ¿í¬π); │
- │ } │
- │ Ñß½¿ (Σá⌐½ ¿¼ÑÑΓ αáºñѽ∩Ѽδ⌐ ΓѬßΓ ¿ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ │
- │ ßτÑΓτ¿¬á ßó∩ºÑ⌐ αáó¡« 1) │
- │ πñ὿Γ∞ ºá»¿ß¿ ¿º Γáí½¿µδ «í½áßΓÑ⌐; │
- │ ó α«ñ¿Γѽ∞߬«¼ ¬áΓὫúÑ: «í¡π½¿Γ∞ ¡«¼Ñα ¿¡ñѬßá ñ½∩ πñá-│
- │ ½∩Ѽ«⌐ ßó∩º¿; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá (á½ú«α¿Γ¼ │
- │ iput); │
- │ π¼Ñ¡∞Φ¿Γ∞ τ¿ß½« ßó∩ºÑ⌐ Σá⌐½á; │
- │ «ßó«í«ñ¿Γ∞ ¿¡ñÑ¬ß Σá⌐½á (á½ú«α¿Γ¼ iput); │
- │ /* iput »α«óÑα∩ÑΓ, αáó¡« ½¿ τ¿ß½« ßó∩ºÑ⌐ 0, Ñß½¿ │
- │ * ñá, │
- │ * «ßó«í«ªñáÑΓ í½«¬¿ Σá⌐½á (á½ú«α¿Γ¼ free) ¿ │
- │ * «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß (á½ú«α¿Γ¼ ifree); │
- │ */ │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.31. ǽú«α¿Γ¼ πñá½Ñ¡¿∩ ßó∩º¿ Σá⌐½á ß ¬áΓὫú«¼
-
-
- 124
-
- Γ«ú«, τΓ«íδ ºáíαáΓ∞ ñ¿ß¬«óδÑ í½«¬¿, ∩ñα« ó µ¿¬½Ñ »α«ß¼áΓα¿óáÑΓ Γáí½¿µπ ß«-
- ñÑন¼«ú« ¿¡ñѬßá, «ßó«í«ªñá∩ óßÑ í½«¬¿ »α∩¼«⌐ áñαÑßᵿ¿ ¡Ñ¼Ññ½Ñ¡¡« (ó ß««Γ-
- óÑΓßΓó¿¿ ß á½ú«α¿Γ¼«¼ free). ùΓ« ¬áßáÑΓß∩ í½«¬«ó ¬«ßóÑ¡¡«⌐ áñαÑßᵿ¿, ∩ñα«
- «ßó«í«ªñáÑΓ óßÑ í½«¬¿, »«∩ó½∩εΘ¿Ñß∩ ¡á αẽ¿τ¡δσ πα«ó¡∩σ ¬«ßóÑ¡¡«ßΓ¿, αѬπα-
- ß¿ó¡«, »α¿τѼ ó »Ñαóπε «τÑαÑñ∞ «ßó«í«ªñáεΓß∩ í½«¬¿ ß ¼Ñ¡∞Φ¿¼ πα«ó¡Ñ¼. Ä¡«
- «í¡π½∩ÑΓ ¡«¼Ñαá í½«¬«ó ó Γáí½¿µÑ ß«ñÑন¼«ú« ¿¡ñѬßá ¿ πßΓá¡áó½¿óáÑΓ αẼÑα
- Σá⌐½á ó ¿¡ñѬßÑ αáó¡δ¼ 0. çáΓѼ ∩ñα« «τ¿ΘáÑΓ ó ¿¡ñѬßÑ »«½Ñ Γ¿»á Σá⌐½á, π¬á-
- ºδóá∩ ΓѼ ßá¼δ¼, τΓ« ¿¡ñÑ¬ß ßó«í«ñÑ¡, ¿ «ßó«í«ªñáÑΓ ¿¡ñÑ¬ß »« á½ú«α¿Γ¼π
- ifree. ƒñα« ñѽáÑΓ ¡Ñ«íσ«ñ¿¼πε ¬«ααѬµ¿ε ¡á ñ¿ß¬Ñ, Γᬠ¬á¬ ñ¿ß¬«óá∩ ¬«»¿∩
- ¿¡ñѬßá óßÑ ÑΘÑ π¬áºδóáÑΓ ¡á Γ«, τΓ« ¿¡ñÑ¬ß ¿ß»«½∞ºπÑΓß∩; ΓÑ»Ñα∞ ¿¡ñÑ¬ß ßó«-
- í«ñÑ¡ ñ½∩ ¡áº¡áτÑ¡¿∩ ñαπú¿¼ Σá⌐½á¼.
-
-
- E5.16.1 ûѽ«ßΓ¡«ßΓ∞ Σá⌐½«ó«⌐ ß¿ßΓѼδF
-
- ƒñα« »«ßδ½áÑΓ ßó«¿ ºá»¿ß¿ ¡á ñ¿ß¬ ñ½∩ Γ«ú«, τΓ«íδ ßóÑßΓ¿ ¬ ¼¿¡¿¼π¼π
- «»áß¡«ßΓ∞ ¿ß¬áªÑ¡¿∩ Σá⌐½«ó«⌐ ß¿ßΓѼδ ó ß½πτáÑ ß¿ßΓѼ¡«ú« ßí«∩. ìá»α¿¼Ñα,
- ¬«úñá ∩ñα« πñá½∩ÑΓ ¿¼∩ Σá⌐½á ¿º α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá, «¡« ß¿¡σα«¡¡« »ÑαÑ-
- »¿ßδóáÑΓ ¬áΓὫú ¡á ñ¿ß¬ - »ÑαÑñ ΓѼ, ¬á¬ π¡¿τΓ«ª¿Γ∞ ß«ñÑন¼«Ñ Σá⌐½á ¿ «ß-
- ó«í«ñ¿Γ∞ Ñú« ¿¡ñѬß. àß½¿ ß¿ßΓѼá ñá½á ßí«⌐ ñ« Γ«ú«, ¬á¬ »α«¿º«Φ½« πñá½Ñ¡¿Ñ
- ß«ñÑন¼«ú« Σá⌐½á, πΘÑαí Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ íπñÑΓ ¡á¡ÑßÑ¡ ¼¿¡¿¼á½∞¡δ⌐: «ñ¿¡ ¿º
- ¿¡ñѬ߫ó íπñÑΓ ¿¼ÑΓ∞ τ¿ß½« ßó∩ºÑ⌐, ¡á 1 »αÑóδΦáεΘÑÑ τ¿ß½« ºá»¿ßÑ⌐ ó ¬áΓὫ-
- úÑ, ¬«Γ«αδÑ ßßδ½áεΓß∩ ¡á φëà ¿¡ñѬß, ¡« óßÑ «ßΓá½∞¡δÑ ¿¼Ñ¡á »πΓÑ⌐ »«¿ß¬á
- Σá⌐½á «ßΓá¡πΓß∩ ñ«»πßΓ¿¼δ¼¿. àß½¿ ºá»¿ß∞ ¡á ñ¿ß¬ ¡Ñ íδ½á ßñѽá¡á ß¿¡σα«¡¡«,
- Γ«τ¬á óσ«ñá ó ¬áΓὫú ¡á ñ¿ß¬Ñ »«ß½Ñ ß¿ßΓѼ¡«ú« ßí«∩ ¼«ªÑΓ π¬áºδóáΓ∞ ¡á ßó«-
- í«ñ¡δ⌐ (¿½¿ »ÑαѡạáτÑ¡¡δ⌐) ¿¡ñѬß. Æá¬¿¼ «íαẫ¼, τ¿ß½« ºá»¿ßÑ⌐ ó ¬áΓὫúÑ
- ¡á ñ¿ß¬Ñ, ¬«Γ«αδÑ ßßδ½áεΓß∩ ¡á ¿¡ñѬß, »αÑóδß¿½« íδ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßß佫¬
- ó ¿¡ñѬßÑ. é τáßΓ¡«ßΓ¿, Ñß½¿ ¿¼∩ Σá⌐½á í佫 ¿¼Ñ¡Ñ¼ »«ß½Ññ¡Ñ⌐ ßó∩º¿ Σá⌐½á,
- φΓ« ¿¼∩ π¬áºδóὫ íδ ¡á ¡Ñ¡áº¡áτÑ¡¡δ⌐ ¿¡ñѬß. ìÑ óδºδóáÑΓ ß«¼¡Ñ¡¿∩, τΓ« ó
- »Ñαó«¼ ß½πτáÑ πΘÑαí, ¡á¡«ß¿¼δ⌐ ß¿ßΓѼÑ, ¼Ñ¡ÑÑ ßÑα∞Ѻѡ ¿ ½Ñú¬« πßΓαá¡¿¼ (ß¼.
- αáºñѽ 5.18).
-
- ÅαÑñ»«½«ª¿¼, ¡á»α¿¼Ñα, τΓ« π Σá⌐½á ÑßΓ∞ ñóÑ ßó∩º¿ ß ¿¼Ñ¡á¼¿ "a" ¿ "b",
- «ñ¡á ¿º ¬«Γ«αδσ - "a" - αáºαδóáÑΓß∩ »α«µÑßß«¼ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ unlink. àß½¿
- ∩ñα« ºá»¿ßδóáÑΓ ¡á ñ¿ß¬Ñ αѺπ½∞ΓáΓδ óßÑσ ßó«¿σ ñÑ⌐ßΓó¿⌐, Γ« «¡«, «τ¿Θá∩ Γ«τ-
- ¬π óσ«ñá ó ¬áΓὫú ñ½∩ Σá⌐½á "a", ñѽáÑΓ Γ« ªÑ ßá¼«Ñ ¡á ñ¿ß¬Ñ. àß½¿ ß¿ßΓѼá
- ñá½á ßí«⌐ »«ß½Ñ ºáóÑαΦÑ¡¿∩ ºá»¿ß¿ αѺπ½∞ΓáΓ«ó ¡á ñ¿ß¬, τ¿ß½« ßó∩ºÑ⌐ π Σá⌐½á
- "b" íπñÑΓ αáó¡« 2, ¡« Σá⌐½ "a" πªÑ ¡Ñ íπñÑΓ ßπΘÑßΓó«óáΓ∞, »«ß¬«½∞¬π »αѪ¡∩∩
- ºá»¿ß∞ « ¡Ñ¼ íδ½á «τ¿ΘÑ¡á »ÑαÑñ ßí«Ñ¼ ß¿ßΓѼδ. öá⌐½ "b", Γᬿ¼ «íαẫ¼, íπ-
- ñÑΓ ¿¼ÑΓ∞ ½¿Φ¡εε ßó∩º∞, ¡« »«ß½Ñ »ÑαѺáúαπº¬¿ τ¿ß½« ßó∩ºÑ⌐ »ÑαÑπßΓá¡«ó¿Γß∩ ¿
- ß¿ßΓѼá íπñÑΓ αáí«ΓáΓ∞ ¡áñ½ÑªáΘ¿¼ «íαẫ¼.
- ÆÑ»Ñα∞ »αÑñ»«½«ª¿¼, τΓ« ∩ñα« ºá»¿ßδóὫ ¡á ñ¿ß¬ αѺπ½∞ΓáΓδ ßó«¿σ ñÑ⌐ßΓ-
- ó¿⌐ ó «íαáΓ¡«¼ »«α∩ñ¬Ñ ¿ ß¿ßΓѼá ñá½á ßí«⌐: Γ« ÑßΓ∞, ∩ñα« π¼Ñ¡∞Φ¿½« º¡áτÑ¡¿Ñ
- ßτÑΓτ¿¬á ßó∩ºÑ⌐ ñ½∩ Σá⌐½á "b", ßñѽáó Ñú« αáó¡δ¼ 1, ºá»¿ßὫ ¿¡ñÑ¬ß ¡á ñ¿ß¬
- ¿ ñὫ ßí«⌐ »ÑαÑñ ΓѼ, ¬á¬ «τ¿ßΓ¿Γ∞ ó ¬áΓὫúÑ Γ«τ¬π óσ«ñá ñ½∩ Σá⌐½á "a".
- Å«ß½Ñ »ÑαѺáúαπº¬¿ ß¿ßΓÑ¼δ ºá»¿ß¿ « Σá⌐½áσ "a" ¿ "b" ó ß««ΓóÑΓßΓóπεΘ¿σ ¬áΓá-
- ½«úáσ íπñπΓ ßπΘÑßΓó«óáΓ∞, ¡« ßτÑΓτ¿¬ ßó∩ºÑ⌐ π Γ«ú« Σá⌐½á, ¡á ¬«Γ«αδ⌐ «¡¿
- π¬áºδóáεΓ, íπñÑΓ ¿¼ÑΓ∞ º¡áτÑ¡¿Ñ 1. àß½¿ ºáΓѼ »α«µÑßß ºá»πßΓ¿Γ Σπ¡¬µ¿ε
- unlink ñ½∩ Σá⌐½á "a", º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßó∩ºÑ⌐ ßΓá¡ÑΓ αáó¡δ¼ 0, ¡Ñß¼«Γα∩ ¡á
- Γ«, τΓ« Σá⌐½ "b" ßßδ½áÑΓß∩ ¡á ëà ªÑ ¿¡ñѬß. àß½¿ »«ºñ¡ÑÑ ∩ñα« »Ñαѡạáτ¿Γ
- ¿¡ñÑ¬ß ó αѺπ½∞ΓáΓÑ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ creat, ßτÑΓτ¿¬ ßó∩ºÑ⌐ ñ½∩ ¡«ó«ú« Σá⌐-
- ½á íπñÑΓ ¿¼ÑΓ∞ º¡áτÑ¡¿Ñ, αáó¡«Ñ 1, ¡« ¡á Σá⌐½ íπñπΓ ßßδ½áΓ∞ß∩ ñóá ¿¼Ñ¡¿ »πΓ¿
- »«¿ß¬á. æ¿ßΓÑ¼á ¡Ñ ¼«ªÑΓ óδ»αáó¿Γ∞ ß¿Γπᵿε, ¡Ñ »α¿íÑúá∩ ¬ »«¼«Θ¿ »α«úαá¼¼
- ß«»α«ó«ªñÑ¡¿∩ (fsck, «»¿ßá¡¡«⌐ ó αáºñÑ½Ñ 5.18), «íαáΘáεΘ¿σß∩ ¬ Σá⌐½«ó«⌐ ß¿ß-
- ΓÑ¼Ñ τÑαѺ í½«τ¡δ⌐ ¿½¿ ßΓ᫬«óδ⌐ ¿¡ΓÑαΣÑ⌐ß.
- ä½∩ Γ«ú«, τΓ«íδ ßóÑßΓ¿ ¬ ¼¿¡¿¼π¼π «»áß¡«ßΓ∞ ¿ß¬áªÑ¡¿∩ Σá⌐½«ó«⌐ ß¿ßΓѼδ ó
- ß½πτáÑ ß¿ßΓѼ¡«ú« ßí«∩, ∩ñα« «ßó«í«ªñáÑΓ ¿¡ñѬßδ ¿ ñ¿ß¬«óδÑ í½«¬¿ Γá¬ªÑ ó
- «ß«í«¼ »«α∩ñ¬Ñ. Åα¿ πñá½Ñ¡¿¿ ß«ñÑন¼«ú« Σá⌐½á ¿ «τ¿ß⪥ Ñú« ¿¡ñѬßá ¼«ª¡«
- ß¡áτá½á «ßó«í«ñ¿Γ∞ í½«¬¿, ß«ñÑαªáΘ¿Ñ ñá¡¡δÑ Σá⌐½á, á ¼«ª¡« «ßó«í«ñ¿Γ∞ ¿¡ñѬß
-
- 125
-
- ¿ ºá¡«ó« »ÑαÑ»¿ßáΓ∞ Ñú«. ÉѺπ½∞ΓáΓ ó «í«¿σ ß½πτá∩σ, ¬á¬ »αá󿽫, «ñ¿¡á¬«óδ⌐,
- «ñ¡á¬«, Ñß½¿ úñÑ-Γ« ó ßÑαÑñ¿¡Ñ »α«¿º«⌐ñÑΓ ß¿ßΓѼ¡δ⌐ ßí«⌐, «¡¿ íπñπΓ αẽ¿-
- τáΓ∞ß∩. ÅαÑñ»«½«ª¿¼, τΓ« ∩ñα« ß¡áτá½á «ßó«í«ñ¿½« ñ¿ß¬«óδÑ í½«¬¿, »α¿¡áñ½Ñ-
- ªáóΦ¿Ñ Σá⌐½π, ¿ ñὫ ßí«⌐. Å«ß½Ñ »ÑαѺáúαπº¬¿ ß¿ßΓÑ¼δ ¿¡ñÑ¬ß óßÑ ÑΘÑ ß«ñÑα-
- ª¿Γ ßß佬¿ ¡á ñ¿ß¬«óδÑ í½«¬¿, ºá¡¿¼áѼδÑ Σá⌐½«¼ »αѪñÑ ¿ ¡δ¡Ñ ¡Ñ σαá¡∩Θ¿Ñ
- «Γ¡«ß∩Θπεß∩ ¬ Σá⌐½π ¿¡Σ«α¼áµ¿ε. ƒñαπ Σá⌐½ »«¬áºá½ß∩ íδ 󻫽¡Ñ πñ«ó½ÑΓó«α¿-
- Γѽ∞¡δ¼, ¡« »«½∞º«óáΓѽ∞ »α¿ «íαáΘÑ¡¿¿ ¬ Σá⌐½π ºá¼ÑΓ¿Γ ¿ß¬áªÑ¡¿Ñ ñá¡¡δσ. ¥Γ¿
- ñ¿ß¬«óδÑ í½«¬¿ ¬ Γ«¼π ªÑ ¼«úπΓ íδΓ∞ »ÑαѡạáτÑ¡δ ñαπú¿¼ Σá⌐½á¼. ùΓ«íδ «τ¿ß-
- Γ¿Γ∞ Σá⌐½«óπε ß¿ßΓѼπ »α«úαá¼¼«⌐ fsck, »«ΓαÑí«ó὿ß∞ íδ í«½∞Φ¿Ñ πß¿½¿∩. Äñ-
- ¡á¬«, Ñß½¿ ß¿ßΓѼá ß¡áτá½á »ÑαÑ»¿ßá½á ¿¡ñÑ¬ß ¡á ñ¿ß¬, á »«Γ«¼ ñá½á ßí«⌐,
- »«½∞º«óáΓѽ∞ ¡Ñ ºá¼ÑΓ¿Γ ¬á¬¿σ-½¿í« ¿ß¬áªÑ¡¿⌐ ó Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ »«ß½Ñ »ÑαÑ-
- ºáúαπº¬¿. ê¡Σ«α¼áµ¿«¡¡δÑ í½«¬¿, αá¡ÑÑ »α¿¡áñ½ÑªáóΦ¿Ñ Σá⌐½π, ßΓá¡πΓ ¡Ññ«ßΓπ»-
- ¡δ ñ½∩ ß¿ßΓѼδ, ¡« ¬á¬¿σ-¡¿íπñ∞ ∩ó¡δσ ¿º¼Ñ¡Ñ¡¿⌐ »α¿ φΓ«¼ »«½∞º«óáΓѽ¿ ¡Ñ
- πó¿ñ∩Γ. Åα«úαá¼¼Ñ fsck ΓᬠªÑ í佫 íδ »α«ΘÑ ºáíαáΓ∞ ¡áºáñ «ßó«í«ñ¿óΦ¿Ñß∩
- »«ß½Ñ πñá½Ñ¡¿∩ ßó∩º¿ ñ¿ß¬«óδÑ í½«¬¿, ¡ÑªÑ½¿ »α«¿ºó«ñ¿Γ∞ «τ¿ßΓ¬π, ¡Ñ«íσ«ñ¿¼πε
- ó »Ñαó«¼ ¿º αáßß¼áΓα¿óáѼδσ ß½πτáÑó.
-
-
- E5.16.2 Å«ó«ñδ ñ½∩ ¬«¡¬παÑ¡µ¿¿F
-
- Å«ó«ñ«ó ñ½∩ ¬«¡¬παÑ¡µ¿¿ »α¿ óδ»«½¡Ñ¡¿¿ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ unlink «τÑ¡∞
- ¼¡«ú«, «ß«íÑ¡¡« »α¿ πñá½Ñ¡¿¿ ¿¼Ñ¡ ¬áΓὫú«ó. 諼á¡ñá rmdir πñá½∩ÑΓ ¬áΓὫú,
- πíÑñ¿óΦ¿ß∞ »αÑñóáα¿Γѽ∞¡« ó Γ«¼, τΓ« ó ¬áΓὫúÑ «ΓßπΓßΓóπεΓ Σá⌐½δ («¡á ßτ¿-
- ΓδóáÑΓ ¬áΓὫú ¿ »α«óÑα∩ÑΓ º¡áτÑ¡¿∩ ¿¡ñѬ߫ó ó« óßÑσ ºá»¿ß∩σ ¬áΓὫúá ¡á αá-
- óÑ¡ßΓó« ¡π½ε). ì« Γᬠ¬á¬ ¬«¼á¡ñá rmdir ºá»π߬áÑΓß∩ ¡á »«½∞º«óáΓѽ∞߬«¼
- πα«ó¡Ñ, ñÑ⌐ßΓó¿∩ »« »α«óÑα¬Ñ ß«ñÑন¼«ú« ¬áΓὫúá ¿ πñá½Ñ¡¿∩ ¬áΓὫúá óδ»«½-
- ¡∩εΓß∩ ¡Ñ Γá¬ πª »α«ßΓ«; ß¿ßΓѼá ñ«½ª¡á »ÑαѬ½ετáΓ∞ ¬«¡ΓѬßΓ ¼Ñªñπ óδ»«½¡Ñ-
- ¡¿Ñ¼ Σπ¡¬µ¿⌐ read ¿ unlink. Äñ¡á¬«, »«ß½Ñ Γ«ú«, ¬á¬ ¬«¼á¡ñá rmdir «í¡áαπª¿-
- ½á, τΓ« ¬áΓὫú »πßΓ, ñαπú«⌐ »α«µÑßß ¼«ªÑΓ »αÑñ»α¿¡∩Γ∞ »«»δΓ¬π ß«ºñáΓ∞ Σá⌐½
- ó ¬áΓὫúÑ Σπ¡¬µ¿Ñ⌐ creat. êºíѪáΓ∞ φΓ«ú« »«½∞º«óáΓѽ¿ ¼«úπΓ Γ«½∞¬« »πΓѼ
- ¿ß»«½∞º«óá¡¿∩ ¼Ñσá¡¿º¼á ºáσóáΓá Σá⌐½á ¿ ºá»¿ß¿. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ, αẠ»α«µÑßß
- »α¿ßΓπ»¿½ ¬ óδ»«½¡Ñ¡¿ε Σπ¡¬µ¿¿ unlink, ¡¿¬á¬«⌐ ñαπú«⌐ »α«µÑßß ¡Ñ ¼«ªÑΓ «íαá-
- Γ¿Γ∞ß∩ ¬ Σá⌐½π ß πñá½∩Ѽ«⌐ ßó∩º∞ε, »«ß¬«½∞¬π ¿¡ñѬßδ α«ñ¿Γѽ∞߬«ú« ¬áΓὫúá
- ¿ Σá⌐½á ºáí½«¬¿α«óá¡δ.
- ÄíαáΓ¿¼ß∩ ÑΘÑ αẠ¬ á½ú«α¿Γ¼π Σπ¡¬µ¿¿ link ¿ »«ß¼«Γα¿¼, ¬á¬¿¼ «íαẫ¼
- ß¿ßΓѼá ß¡¿¼áÑΓ ß ¿¡ñѬßá í½«¬¿α«ó¬π ñ« ºáóÑαΦÑ¡¿∩ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿. àß½¿
- íδ ñαπú«⌐ »α«µÑßß πñ὿½ ßó∩º∞ Σá⌐½á »«¬á Ñú« ¿¡ñÑ¬ß ßó«í«ñÑ¡, «¡ íδ ΓѼ ßá-
- ¼δ¼ Γ«½∞¬« π¼Ñ¡∞Φ¿½ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßó∩ºÑ⌐; Γᬠ¬á¬ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßó∩-
- ºÑ⌐ í佫 πóѽ¿τÑ¡« »ÑαÑñ πñá½Ñ¡¿Ñ¼ ßó∩º¿, φΓ« º¡áτÑ¡¿Ñ «ßΓá¡ÑΓß∩ »«½«ª¿Γѽ∞-
- ¡δ¼. æ½Ññ«óáΓѽ∞¡«, Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ πñá½Ñ¡ ¿ ß¿ßΓѼá αáí«ΓáÑΓ ¡áñѪ¡«.
- ¥Γá ß¿Γπᵿ∩ á¡á½«ú¿τ¡á Γ«⌐, ¬«úñá Σπ¡¬µ¿∩ unlink óδºδóáÑΓß∩ ßαáºπ »«ß½Ñ ºá-
- óÑαΦÑ¡¿∩ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ link.
- äαπú«⌐ »«ó«ñ ñ½∩ ¬«¡¬παÑ¡µ¿¿ ¿¼ÑÑΓ ¼ÑßΓ« ó Γ«¼ ß½πτáÑ, ¬«úñá «ñ¿¡ »α«-
- µÑßß »αÑ«íαáºπÑΓ ¿¼∩ »πΓ¿ »«¿ß¬á Σá⌐½á ó ¿¡ñÑ¬ß Σá⌐½á »« á½ú«α¿Γ¼π namei, á
- ñαπú«⌐ »α«µÑßß πñá½∩ÑΓ ¬áΓὫú, ¿¼∩ ¬«Γ«α«ú« óσ«ñ¿Γ ó »πΓ∞ »«¿ß¬á. ä«»πßΓ¿¼,
- »α«µÑßß A ñѽáÑΓ αáºí«α ¿¼Ñ¡¿ "a/ b/c/d" ¿ »α¿«ßΓá¡áó½¿óáÑΓß∩ ó« óαѼ∩ »«½π-
- τÑ¡¿∩ ¿¡ñѬßá ñ½∩ Σá⌐½á "c". Ä¡ ¼«ªÑΓ »α¿«ßΓá¡«ó¿Γ∞ß∩ »α¿ »«»δ⪥ ºáí½«¬¿α«-
- óáΓ∞ ¿¡ñÑ¬ß ¿½¿ »α¿ »«»δ⪥ «íαáΓ¿Γ∞ß∩ ¬ ñ¿ß¬«ó«¼π í½«¬π, úñÑ φëà ¿¡ñѬß
- σαá¡¿Γß∩ (ß¼. á½ú«α¿Γ¼δ iget ¿ bread). àß½¿ »α«µÑßßπ B ¡πª¡« πñ½¿Γ∞ ßó∩º∞
- ñ½∩ ¬áΓὫúá ß ¿¼Ñ¡Ñ¼ "c", «¡ ¼«ªÑΓ »α¿«ßΓá¡«ó¿Γ∞ß∩ »« Γ«⌐ ªÑ ßἫ⌐ »α¿τ¿¡Ñ,
- τΓ« ¿ »α«µÑßß A. ÅπßΓ∞ ∩ñα« ó»«ß½ÑñßΓó¿¿ αÑΦ¿Γ ó«º«í¡«ó¿Γ∞ »α«µÑßß B αá¡∞ΦÑ
- »α«µÑßßá A. ÅαѪñÑ τѼ »α«µÑßß A »α«ñ«½ª¿Γ ßó«Ñ óδ»«½¡Ñ¡¿Ñ, »α«µÑßß B ºáóÑα-
- Φ¿Γß∩, πñ὿ó ßó∩º∞ ¬áΓὫúá "c" ¿ Ñú« ß«ñÑন¼«Ñ »« φΓ«⌐ ßó∩º¿. Å«ºñ¡ÑÑ,
- »α«µÑßß A »«»δΓáÑΓß∩ «íαáΓ¿Γ∞ß∩ ¬ ¡ÑßπΘÑßΓóπεΘÑ¼π ¿¡ñѬßπ, ¬«Γ«αδ⌐ πªÑ íδ½
- πñá½Ñ¡. ǽú«α¿Γ¼ namei, »α«óÑα∩εΘ¿⌐ ó »Ñαóπε «τÑαÑñ∞ ¡ÑαáóÑ¡ßΓó« º¡áτÑ¡¿∩
- ßτÑΓτ¿¬á ßó∩ºÑ⌐ ¡π½ε, ß««íΘ¿Γ «í «Φ¿í¬Ñ.
- Æá¬«⌐ »α«óÑન, «ñ¡á¬«, ¡Ñ óßÑúñá ñ«ßΓáΓ«τ¡«, »«ß¬«½∞¬π ¼«ª¡« »αÑñ»«½«-
- ª¿Γ∞, τΓ« ¬á¬«⌐-¡¿íπñ∞ ñαπú«⌐ »α«µÑßß ß«ºñáßΓ ó ½εí«¼ ¼ÑßΓÑ Σá⌐½«ó«⌐ ß¿ßΓѼδ
- ¡«óδ⌐ ¬áΓὫú ¿ »«½πτ¿Γ ëà ¿¡ñѬß, ¬«Γ«αδ⌐ αá¡ÑÑ ¿ß»«½∞º«óá½ß∩ ñ½∩ "c".
-
- 126
-
- Åα«µÑßß A íπñÑΓ ºáí½πªñáΓ∞ß∩, ñπ¼á∩, τΓ« «¡ «íαáΓ¿½ß∩ ¬ ¡πª¡«¼π ¿¡ñѬßπ (ß¼.
- É¿ßπ¡«¬ 5.32). èᬠíδ Γ« ¡¿ í佫, ß¿ßΓѼá ß«σαá¡∩ÑΓ ßó«ε µÑ½«ßΓ¡«ßΓ∞; ßἫÑ
- σπñΦÑÑ, τΓ« ¼«ªÑΓ »α«¿º«⌐Γ¿, φΓ« «íαáΘÑ¡¿Ñ ¡Ñ ¬ Γ«¼π Σá⌐½π - ß ó«º¼«ª¡δ¼ ¡á-
-
- Åα«µÑßß A Åα«µÑßß B Åα«µÑßß C
- ┌────────────────────────────────────────────────────────────
- │ ∙ ôñá½∩ÑΓß∩ ßó∩º∞ Σá⌐- ∙
- │ ∙ ½á ß ¿¼Ñ¡Ñ¼ "ß" ∙
- │ ∙ ∙
- │ ∙ Äí¡áαπª¿óáÑΓ, τΓ« ∙
- │ ∙ ¿¡ñÑ¬ß Σá⌐½á "c" ∙
- │ ∙ ºáí½«¬¿α«óá¡ ∙
- │ ∙ Åα¿«ßΓá¡áó½¿óáÑΓ ∙
- │ ∙ óδ»«½¡Ñ¡¿Ñ ∙
- │ ∙ ∙ ∙
- │ Åα«ß¼áΓα¿óáÑΓ ¬á- ∙ ∙
- │ ΓὫú "b" ó »«¿ß- ∙ ∙
- │ ¬áσ ¿¼Ñ¡¿ "c" ∙ ∙
- │ Å«½πτáÑΓ ¡«¼Ñα ¿¡- ∙ ∙
- │ ñѬßá ñ½∩ "c" ∙ ∙
- │ Äí¡áαπª¿óáÑΓ, τΓ« ∙ ∙
- │ ¿¡ñÑ¬ß Σá⌐½á "c" ∙ ∙
- │ ºáí½«¬¿α«óá¡ ∙ ∙
- │ Åα¿«ßΓá¡áó½¿óáÑΓ ∙ ∙
- │ óδ»«½¡Ñ¡¿Ñ ∙ ∙
- │ ∙ ∙ ∙
- │ ∙ 髺«í¡«ó½∩ÑΓ óδ»«½- ∙
- │ ∙ ¡Ñ¡¿Ñ, ¿¡ñÑ¬ß "c" ∙
- │ ∙ ßó«í«ñÑ¡ ∙
- │ ∙ ôñá½∩ÑΓ ßó∩º∞ ß ¿¼Ñ- ∙
- │ ∙ ¡Ñ¼ "c", »αѪ¡¿⌐ ¿¡- ∙
- │ ∙ ñÑ¬ß «ßó«í«ªñáÑΓß∩, ∙
- │ ∙ Ñß½¿ τ¿ß½« ßó∩ºÑ⌐ =0 ∙
- │ ∙ ∙ ∙
- │ ∙ ∙ ìạáτáÑΓ ¿¡ñѬß
- │ ∙ ∙ ¡«ó«¼π Σá⌐½π "n"
- │ ∙ ∙ æ½πτá⌐¡« ¡áº¡áτá-
- │ ∙ ∙ ÑΓ Ñ¼π ¿¡ñѬß, αá-
- │ ∙ ∙ ¡ÑÑ »α¿¡áñ½ÑªáóΦ¿⌐
- │ ∙ ∙ "c"
- │ ∙ ∙
- │ ∙ ∙ é ¬«¡Ñτ¡«¼ ¿Γ«úÑ
- │ ∙ ∙ ß¡¿¼áÑΓ í½«¬¿α«ó¬π
- │ ∙ ∙ ß ¿¡ñѬßá "n"
- │ ∙ ∙
- │ 髺«í¡«ó½∩ÑΓ óδ»«½- ∙
- │ ¡Ñ¡¿Ñ, »αѪ¡¿⌐ ¿¡- ∙
- │ ñÑ¬ß "c" (ΓÑ»Ñα∞ ∙
- │ "n") ßó«í«ñÑ¡ ∙
- │ Å«½πτáÑΓ ¿¡ñÑ¬ß "n" ∙
- │ Åα«ß¼áΓα¿óáÑΓ ¬á- ∙
- │ ΓὫú "n" ó »«¿ß- ∙
- │ ¬áσ ¿¼Ñ¡¿ "d" ∙
- v
- éαѼ∩
-
- É¿ßπ¡«¬ 5.32. æ«»Ñα¡¿τÑßΓó« »α«µÑßß«ó ºá ¿¡ñÑ¬ß »α¿ óδ»«½¡Ñ-
- ¡¿¿ Σπ¡¬µ¿¿ unlink
-
-
- 127
-
- ┌────────────────────────────────────────────────────────────┐
- │ #include <sys/types.h> │
- │ #include <sys/stat.h> │
- │ #include <fcntl.h> │
- │ │
- │ main(argc,argv) │
- │ int argc; │
- │ char *argv[]; │
- │ { │
- │ int fd; │
- │ char buf[1024]; │
- │ struct stat statbuf; │
- │ │
- │ if (argc != 2) /* ¡πªÑ¡ »áαá¼ÑΓα */ │
- │ exit(); │
- │ fd = open(argv[1],O_RDONLY); │
- │ if (fd == -1) /* open ºáóÑαΦ¿½áß∞ │
- │ ¡Ñπñáτ¡« */ │
- │ exit(); │
- │ if (unlink(argv[1]) == -1) /* πñ὿Γ∞ ßó∩º∞ ß Γ«½∞¬« │
- │ τΓ« «Γ¬αδΓδ¼ Σá⌐½«¼ */ │
- │ exit(); │
- │ if (stat(argv[1],&statbuf) == -1) /* πº¡áΓ∞ ß«ßΓ«∩- │
- │ ¡¿Ñ Σá⌐½á »« ¿¼Ñ¡¿ */ │
- │ printf("stat %s ºáóÑαΦ¿½áß∞ ¡Ñπñáτ¡«\n",argv[1]);│
- │ /* ¬á¬ ¿ ß½Ññ«óὫ íδ */ │
- │ else │
- │ printf("stat %s ºáóÑαΦ¿½áß∞ πß»ÑΦ¡«!\n",argv[1]);│
- │ if (fstat(fd,&statbuf) == -1) /* πº¡áΓ∞ ß«ßΓ«∩¡¿Ñ │
- │ Σá⌐½á »« ¿ñÑ¡Γ¿Σ¿¬áΓ«απ */ │
- │ printf("fstat %s ßαáí«Γá½á ¡Ñπñáτ¡«!\n",argv[1]);│
- │ else │
- │ printf("fstat %s ºáóÑαΦ¿½áß∞ πß»ÑΦ¡«\n",argv[1]);│
- │ /* ¬á¬ ¿ ß½Ññ«óὫ íδ */ │
- │ while (read(fd,buf,sizeof(buf)) > 0) /* τΓÑ¡¿Ñ «Γ¬αδ- │
- │ Γ«ú« Σá⌐½á ß πñá½Ñ¡¡«⌐ ßó∩º∞ε */ │
- │ printf("%1024s",buf); /* óδó«ñ ¡á »ÑτáΓ∞ »«½∩ │
- │ αẼÑα«¼ 1 èíá⌐Γ */ │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.33. ôñá½Ñ¡¿Ñ ßó∩º¿ ß «Γ¬αδΓδ¼ Σá⌐½«¼
-
-
- απΦÑ¡¿Ñ¼ ºáΘ¿Γδ - ¡« ß«»Ñα¡¿τÑßΓóá Γᬫú« α«ñá ¡á »αá¬Γ¿¬Ñ ñ«ó«½∞¡« αÑñ¬¿.
- Åα«µÑßß ¼«ªÑΓ πñ὿Γ∞ ßó∩º∞ Σá⌐½á ó Γ« óαѼ∩, ¬á¬ ñαπú«¼π »α«µÑßßπ ¡πª-
- ¡«, τΓ«íδ Σá⌐½ «ßΓáóá½ß∩ «Γ¬αδΓδ¼. (äáªÑ »α«µÑßß, πñá½∩εΘ¿⌐ ßó∩º∞, ¼«ªÑΓ
- íδΓ∞ »α«µÑßß«¼, óδ»«½¡¿óΦ¿¼ φΓ« «Γ¬αδΓ¿Ñ). ū߬«½∞¬π ∩ñα« ß¡¿¼áÑΓ ß ¿¡ñѬßá
- í½«¬¿α«ó¬π »« «¬«¡τá¡¿¿ óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ open, Σπ¡¬µ¿∩ unlink ºáóÑαΦ¿Γß∩
- πß»ÑΦ¡«. ƒñα« íπñÑΓ óδ»«½¡∩Γ∞ á½ú«α¿Γ¼ unlink Γ«τ¡« ΓᬠªÑ, ¬á¬ Ñß½¿ íδ Σá⌐½
- ¡Ñ íδ½ «Γ¬αδΓ, ¿ πñá½¿Γ ¿º ¬áΓὫúá ºá»¿ß∞ « Σá⌐½Ñ. ÆÑ»Ñα∞ »« ¿¼Ñ¡¿ πñá½Ñ¡-
- ¡«⌐ ßó∩º¿ ¬ Σá⌐½π ¡Ñ ß¼«ªÑΓ «íαáΓ¿Γ∞ß∩ ¡¿¬á¬«⌐ ñαπú«⌐ »α«µÑßß. Äñ¡á¬«, Γá¬
- ¬á¬ ß¿ßΓѼ¡á∩ Σπ¡¬µ¿∩ open πóѽ¿τ¿½á º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßß佫¬ ó ¿¡ñѬßÑ, ∩ñ-
- α« ¡Ñ «τ¿ΘáÑΓ ß«ñÑন¼«Ñ Σá⌐½á »α¿ óδ»«½¡Ñ¡¿¿ á½ú«α¿Γ¼á iput »ÑαÑñ ºáóÑαΦÑ-
- ¡¿Ñ¼ Σπ¡¬µ¿¿ unlink. Å«φΓ«¼π »α«µÑßß, «Γ¬αδóΦ¿⌐ Σá⌐½, ¼«ªÑΓ »α«¿ºó«ñ¿Γ∞ ¡áñ
- Σá⌐½«¼ óßÑ «íδτ¡δÑ ñÑ⌐ßΓó¿∩ »« Ñú« ñÑß¬α¿»Γ«απ, ó¬½ετá∩ τΓÑ¡¿Ñ ¿º Σá⌐½á ¿
- ºá»¿ß∞ ó Σá⌐½. ì« ¬«úñá »α«µÑßß ºá¬αδóáÑΓ Σá⌐½, º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßß佫¬ ó
- á½ú«α¿Γ¼Ñ iput ßΓá¡«ó¿Γß∩ αáó¡δ¼ 0, ¿ ∩ñα« «τ¿ΘáÑΓ ß«ñÑন¼«Ñ Σá⌐½á. è«α«τÑ
- ú«ó«α∩, »α«µÑßß, «Γ¬αδóΦ¿⌐ Σá⌐½, »α«ñ«½ªáÑΓ αáí«Γπ Γá¬, ¬á¬ Ñß½¿ íδ Σπ¡¬µ¿∩
-
- 128
-
- unlink ¡Ñ óδ»«½¡∩½áß∞, á unlink, ó ßó«ε «τÑαÑñ∞, αáí«ΓáÑΓ Γá¬, ¬á¬ Ñß½¿ íδ
- Σá⌐½ ¡Ñ íδ½ «Γ¬αδΓ. äαπú¿Ñ ß¿ßΓѼ¡δÑ Σπ¡¬µ¿¿ Γá¬ªÑ ¼«úπΓ »α«ñ«½ªáΓ∞ óδ»«½-
- ¡∩Γ∞ß∩ ó »α«µÑßßÑ, «Γ¬αδóΦѼ Σá⌐½.
- é »α¿óÑñÑ¡¡«¼ ¡á É¿ßπ¡¬Ñ 5.33 »α¿¼ÑαÑ »α«µÑßß «Γ¬αδóáÑΓ Σá⌐½, π¬áºá¡¡δ⌐
- ó ¬áτÑßΓóÑ »áαá¼ÑΓαá, ¿ ºáΓѼ πñá½∩ÑΓ ßó∩º∞ Γ«½∞¬« τΓ« «Γ¬αδΓ«ú« Σá⌐½á. öπ¡-
- ¬µ¿∩ stat ºáóÑαΦ¿Γß∩ ¡Ñπñáτ¡«, »«ß¬«½∞¬π »Ñαó«¡áτá½∞¡«Ñ ¿¼∩ »«ß½Ñ unlink
- í«½∞ΦÑ ¡Ñ π¬áºδóáÑΓ ¡á Σá⌐½ (»αÑñ»«-
- ½áúáÑΓß∩, τΓ« ΓѼ óαѼѡѼ ¡¿¬á¬«⌐ ñαπú«⌐ »α«µÑßß ¡Ñ ß«ºñá½ Σá⌐½ ß ΓѼ ªÑ
- ¿¼Ñ¡Ñ¼), ¡« Σπ¡¬µ¿∩ fstat ºáóÑαΦ¿Γß∩ πß»ÑΦ¡«, Γᬠ¬á¬ «¡á óδí¿αáÑΓ ¿¡ñÑ¬ß »«
- ñÑß¬α¿»Γ«απ Σá⌐½á. Åα«µÑßß óδ»«½¡∩ÑΓ µ¿¬½, ßτ¿Γδóá∩ ¡á ¬áªñ«¼ ΦáúÑ »« 1024
- íá⌐Γá ¿ »ÑαÑßδ½á∩ Σá⌐½ ó ßΓá¡ñáαΓ¡δ⌐ óδó«ñ. è«úñá »α¿ τΓÑ¡¿¿ íπñÑΓ «í¡áαπªÑ¡
- ¬«¡Ñµ Σá⌐½á, »α«µÑßß ºáóÑαΦáÑΓ αáí«Γπ: »«ß½Ñ ºáóÑαΦÑ¡¿∩ »α«µÑßßá Σá⌐½ »ÑαÑß-
- ΓáÑΓ ßπΘÑßΓó«óáΓ∞. Åα«µÑßßδ τáßΓ« ß«ºñáεΓ óαѼѡ¡δÑ Σá⌐½δ ¿ ßαáºπ ªÑ πñá½∩εΓ
- ßó∩º∞ ß ¡¿¼¿; «¡¿ ¼«úπΓ »α«ñ«½ªáΓ∞ óó«ñ-óδó«ñ ó φΓ¿ Σá⌐½δ, ¡« ¿¼Ñ¡á Σá⌐½«ó
- í«½∞ΦÑ ¡Ñ »«∩ó½∩εΓß∩ ó ¿Ñαáασ¿¿ ¬áΓὫú«ó. àß½¿ »α«µÑßß »« ¬á¬«⌐-½¿í« »α¿τ¿-
- ¡Ñ ºáóÑαΦáÑΓß∩ áóáα¿⌐¡«, «¡ ¡Ñ «ßΓáó½∩ÑΓ «Γ óαѼѡ¡δσ Σá⌐½«ó ¡¿¬á¬«ú« ß½Ññá.
-
- E5.17 ÇüæÆÉÇèÆì¢à ÄüÉÇÖàìêƒ è öÇëïÄé¢î æêæÆàîÇîF
-
- ôá⌐¡íÑαúÑα«¼ í佫 óóÑñÑ¡« »«¡∩Γ¿Ñ "Γ¿» Σá⌐½«ó«⌐ ß¿ßΓѼδ" ñ½∩ «íΩ∩ߡѡ¿∩
- ¼Ñσá¡¿º¼á αáí«Γδ »α¿¡áñ½ÑªáóΦÑ⌐ Ѽπ ßÑΓÑó«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ (ß¼. ¬αáΓ¬«Ñ
- «»¿ßá¡¿Ñ φΓ«ú« ¼Ñσá¡¿º¼á ó [Killian 84]) ¿ ó »«ºñ¡Ñ⌐ΦÑ⌐ óÑαß¿¿ ß¿ßΓѼδ V
- »«ññÑনóáεΓß∩ «ß¡«ó«»«½áúáεΘ¿Ñ »α¿¡µ¿»δ Ñú« ßσѼδ. ì὿τ¿Ñ Γ¿»á Σá⌐½«ó«⌐
- ß¿ßΓѼδ ñáÑΓ ∩ñαπ 󫺼«ª¡«ßΓ∞ »«ññÑনóáΓ∞ «ñ¡«óαѼѡ¡« ¼¡«ªÑßΓó« Σá⌐½«óδσ
- ß¿ßΓѼ, Γᬿσ ¬á¬ ßÑΓÑóδÑ Σá⌐½«óδÑ ß¿ßΓѼδ (ú½áóá 13) ¿½¿ ñáªÑ Σá⌐½«óδÑ ß¿ß-
- ΓÑ¼δ ¿º ñαπú¿σ «»Ñαᵿ«¡¡δσ ß¿ßΓѼ. Åα«µÑßßδ »«½∞ºπεΓß∩ ñ½∩ «íαáΘÑ¡¿∩ ¬ Σá⌐-
- ½á¼ «íδτ¡δ¼¿ Σπ¡¬µ¿∩¼¿ ß¿ßΓѼδ UNIX, á ∩ñα« πßΓá¡áó½¿óáÑΓ ß««ΓóÑΓßΓó¿Ñ ¼Ñªñπ
- «íΘ¿¼ ¡áí«α«¼ Σá⌐½«óδσ «»Ñαᵿ⌐ ¿ «»Ñαᵿ∩¼¿, ߻ѵ¿Σ¿τ¡δ¼¿ ñ½∩ ¬áªñ«ú« Γ¿»á
- Σá⌐½«ó«⌐ ß¿ßΓѼδ.
-
- Ä»Ñαᵿ¿ Σá⌐½«ó«⌐ ÄíΘ¿Ñ ¿¡ñѬßδ ê¡ñÑ¬ß Σá⌐½«ó«⌐
- ß¿ßΓѼδ ß¿ßΓѼδ óÑαß¿¿ V
- ┌───────────────┐ ┌──────┐ ┌───────┐
- éÑαß¿∩ V │ open │ ┌─────┼─ ─┼────────>│ │
- │ close │ │ ├──────┤ ├───────┤
- │ read │ │ ┌───┼─ ─┼───┐ │ │
- │ write │<───┘ │ ├──────┤ │ ├───────┤
- │ ∙ │<─────│───┼─ ─┼───│────>│ │
- │ ∙ │ │ ├──────┤ │ ├───────┤
- │ ∙ │ │ │ │ │ │ ∙ │
- │ ∙ │ │ ├──────┤ │ │ ∙ │
- ├───────────────┤ │ │ │ │ │ ∙ │
- ôñá½Ñ¡¡á∩ │ ropen │ │ ├──────┤ │ └───────┘
- ß¿ßΓѼá │ rclose │ │ │ ∙ │ │
- │ rread │ │ │ ∙ │ │ ê¡ñÑ¬ß πñá½Ñ¡-
- │ rwrite │<─────┘ │ ∙ │ │ ¡«⌐ ß¿ßΓѼδ
- │ ∙ │ │ ∙ │ │ ┌───────┐
- │ ∙ │ │ ∙ │ │ │ │
- │ ∙ │ │ ∙ │ │ ├───────┤
- │ ∙ │ │ ∙ │ └────>│ │
- ├───────────────┤ │ ∙ │ ├───────┤
- │ ∙ │ │ ∙ │ │ │
- │ ∙ │ │ ∙ │ ├───────┤
- │ ∙ │ │ ∙ │ │ │
- │ ∙ │ │ ∙ │ ├───────┤
- │ ∙ │ │ ∙ │ │ ∙ │
- └───────────────┘ └──────┘ └───────┘
-
- É¿ßπ¡«¬ 5.34. ê¡ñѬßδ ñ½∩ Σá⌐½«óδσ ß¿ßΓѼ αẽ¿τ¡δσ Γ¿»«ó
-
- 129
-
-
- ê¡ñÑ¬ß óδßΓπ»áÑΓ ¿¡ΓÑαΣÑ⌐ß«¼ ¼Ñªñπ áíßΓαá¬Γ¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼ«⌐ ¿ «Γ-
- ñѽ∞¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼ«⌐. ÄíΘá∩ ¬«»¿∩ ¿¡ñѬßá ó »á¼∩Γ¿ ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε,
- ¡Ñ ºáó¿ß∩Θπε «Γ «Γñѽ∞¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ, á Γá¬ªÑ π¬áºáΓѽ∞ ¡á τáßΓ¡δ⌐ ¿¡-
- ñÑ¬ß Σá⌐½«ó«⌐ ß¿ßΓѼδ, ¬«Γ«αδ⌐ πªÑ ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε, ߻ѵ¿Σ¿τ¡πε ñ½∩ ¡ÑÑ.
- ùáßΓ¡δ⌐ ¿¡ñÑ¬ß Σá⌐½«ó«⌐ ß¿ßΓѼδ ß«ñÑαª¿Γ Γá¬πε ¿¡Σ«α¼áµ¿ε, ¬á¬ »αáóá ñ«ßΓπ»á
- ¿ αáß»«½«ªÑ¡¿Ñ í½«¬«ó, á «íΘ¿⌐ ¿¡ñÑ¬ß ß«ñÑαª¿Γ ¡«¼Ñα πßΓα«⌐ßΓóá, ¡«¼Ñα ¿¡-
- ñѬßá ¡á ñ¿ß¬Ñ, Γ¿» Σá⌐½á, αẼÑα, ¿¡Σ«α¼áµ¿ε « ó½áñѽ∞µÑ ¿ ßτÑΓτ¿¬ ßß佫¬.
- äαπúá∩ τáßΓ¡á∩ ¿¡Σ«α¼áµ¿∩, «»¿ßδóáεΘá∩ «Γñѽ∞¡πε Σá⌐½«óπε ß¿ßΓѼπ, ß«ñÑনΓ-
- ß∩ ó ßπ»Ñαí½«¬Ñ ¿ ßΓαπ¬ΓπαÑ ¬áΓὫú«ó. ìá É¿ßπ¡¬Ñ 5.34 ¿º«íαáªÑ¡δ Γáí½¿µá
- «íΘ¿σ ¿¡ñѬ߫ó ó »á¼∩Γ¿ ¿ ñóÑ Γáí½¿µδ τáßΓ¡δσ ¿¡ñѬ߫ó «Γñѽ∞¡δσ Σá⌐½«óδσ
- ß¿ßΓѼ, «ñ¡á ñ½∩ ßΓαπ¬Γπα Σá⌐½«ó«⌐ ß¿ßΓѼδ óÑαß¿¿ V, á ñαπúá∩ ñ½∩ ¿¡ñѬßá
- πñá½Ñ¡¡«⌐ (ßÑΓÑó«⌐) ß¿ßΓѼδ. ÅαÑñ»«½áúáÑΓß∩, τΓ« »«ß½Ññ¡¿⌐ ¿¡ñÑ¬ß ß«ñÑনΓ
- ñ«ßΓáΓ«τ¡« ¿¡Σ«α¼áµ¿¿ ñ½∩ Γ«ú«, τΓ«íδ ¿ñÑ¡Γ¿Σ¿µ¿α«óáΓ∞ Σá⌐½, ¡áσ«ñ∩Θ¿⌐ß∩ ó
- πñá½Ñ¡¡«⌐ ß¿ßΓѼÑ. ô Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ¼«ªÑΓ «ΓßπΓßΓó«óáΓ∞ ßΓαπ¬Γπαá, »«ñ«í-
- ¡á∩ ¿¡ñѬßπ; ¡« ¿ßσ«ñ¡δ⌐ ΓѬßΓ »α«úαá¼¼ «Γñѽ∞¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ »«ºó«½∩ÑΓ
- ß«ºñáΓ∞ «íΩÑ¬Γ¡δ⌐ ¬«ñ, πñ«ó½ÑΓó«α∩εΘ¿⌐ ßѼá¡Γ¿τÑ߬¿¼ ΓαÑí«óá¡¿∩¼ Σá⌐½«ó«⌐
- ß¿ßΓѼδ UNIX ¿ ¡áº¡áτáεΘ¿⌐ ßó«⌐ "¿¡ñѬß", ¬«Γ«αδ⌐ ß««ΓóÑΓßΓóπÑΓ «íΘÑ¼π ¿¡-
- ñѬßπ, ¡áº¡áτáѼ«¼π ∩ñα«¼.
-
- öá⌐½«óá∩ ß¿ßΓÑ¼á ¬áªñ«ú« Γ¿»á ¿¼ÑÑΓ ¡Ñ¬πε ßΓαπ¬Γπαπ, ó ¬«Γ«α«⌐ σαá¡∩Γß∩
- áñαÑßá Σπ¡¬µ¿⌐, αÑ὿ºπεΘ¿σ áíßΓαá¬Γ¡δÑ ñÑ⌐ßΓó¿∩. è«úñá ∩ñαπ ¡πª¡« «íαáΓ¿Γ∞-
- ß∩ ¬ Σá⌐½π, «¡« óδºδóáÑΓ ¬«ßóÑ¡¡πε Σπ¡¬µ¿ε ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ¿»á Σá⌐½«ó«⌐
- ß¿ßΓÑ¼δ ¿ áíßΓαá¬Γ¡«ú« ñÑ⌐ßΓó¿∩ (ß¼. É¿ßπ¡«¬ 5.34). Åα¿¼ÑαἿ áíßΓαá¬Γ¡δσ
- ñÑ⌐ßΓó¿⌐ ∩ó½∩εΓß∩: «Γ¬αδΓ¿Ñ ¿ ºá¬αδΓ¿Ñ Σá⌐½á, τΓÑ¡¿Ñ ¿ ºá»¿ß∞ ñá¡¡δσ, ó«ºó-
- αáΘÑ¡¿Ñ ¿¡ñѬßá ñ½∩ ¬«¼»«¡Ñ¡Γδ ¿¼Ñ¡¿ Σá⌐½á (»«ñ«í¡« namei ¿ iget), «ßó«í«ª-
- ñÑ¡¿Ñ ¿¡ñѬßá (»«ñ«í¡« iput), ¬«ααѬµ¿∩ ¿¡ñѬßá, »α«óÑα¬á »αáó ñ«ßΓπ»á, πß-
- Γá¡«ó¬á áΓα¿íπΓ«ó Σá⌐½á (»αáó ñ«ßΓπ»á ¬ ¡Ñ¼π), á Γá¬ªÑ ¼«¡Γ¿α«óá¡¿Ñ ¿ ñѼ«¡-
- Γ¿α«óá¡¿Ñ Σá⌐½«óδσ ß¿ßΓѼ. é ú½áóÑ 13 íπñÑΓ »α«¿½½εßΓα¿α«óá¡« ¿ß»«½∞º«óá¡¿Ñ
- ß¿ßΓѼ¡δσ áíßΓαᬵ¿⌐ »α¿ αáßß¼«ΓαÑ¡¿¿ αáß»αÑñѽѡ¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ.
-
-
- E5.18 æÄÅÉÄéÄåäàìêà öÇëïÄéÄë æêæÆàî¢F
-
- ƒñα« »«ññÑনóáÑΓ µÑ½«ßΓ¡«ßΓ∞ ß¿ßΓѼδ ó ßó«Ñ⌐ «íδτ¡«⌐ αáí«ΓÑ. ÆÑ¼ ¡Ñ ¼Ñ-
- ¡ÑÑ, Γá¬¿Ñ ταѺóδτá⌐¡δÑ «íßΓ«∩Γѽ∞ßΓóá, ¬á¬ «Γ¬áº »¿Γá¡¿∩, ¼«úπΓ »α¿óÑßΓ¿ ¬
- ΣáΓá½∞¡«¼π ßí«ε ß¿ßΓѼδ, ó αѺπ½∞ΓáΓÑ ¬«Γ«α«ú« ß«ñÑন¼«Ñ ß¿ßΓѼδ πΓαáτ¿óáÑΓ
- ßó«ε ß«ú½áß«óá¡¡«ßΓ∞: í«½∞Φ¿¡ßΓó« ñá¡¡δσ ó Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ ñ«ßΓπ»¡« ñ½∩ ¿ß-
- »«½∞º«óá¡¿∩, ¡« ¡Ñ¬«Γ«αá∩ ¡Ñß«ú½áß«óá¡¡«ßΓ∞ ¼Ñªñπ ¡¿¼¿ ¿¼ÑÑΓ ¼ÑßΓ«. 諼á¡ñá
- fsck »α«óÑα∩ÑΓ ß«ú½áß«óá¡¡«ßΓ∞ ñá¡¡δσ ¿ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ó¡«ß¿Γ ó Σá⌐-
- ½«óπε ß¿ßΓѼπ ¿ß»αáó½Ñ¡¿∩. Ä¡á «íαáΘáÑΓß∩ ¬ Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ τÑαѺ í½«τ¡δ⌐
- ¿½¿ ßΓ᫬«óδ⌐ ¿¡ΓÑαΣÑ⌐ß (ú½áóá 10) ó «íσ«ñ Γαáñ¿µ¿«¡¡δσ ¼ÑΓ«ñ«ó ñ«ßΓπ»á ¬
- Σá⌐½á¼. é φΓ«¼ αáºñÑ½Ñ αáßß¼áΓα¿óáεΓß∩ ¡Ñ¬«Γ«αδÑ »α¿¼Ñαδ »α«Γ¿ó«αÑτ¿ó«ßΓ¿
- ñá¡¡δσ, ¬«Γ«αá∩ «í¡áαπª¿óáÑΓß∩ ¬«¼á¡ñ«⌐ fsck.
- ä¿ß¬«óδ⌐ í½«¬ ¼«ªÑΓ »α¿¡áñ½ÑªáΓ∞ í«½ÑÑ τѼ «ñ¡«¼π ¿¡ñѬßπ ¿½¿ ß»¿ß¬π
- ßó«í«ñ¡δσ í½«¬«ó. è«úñá Σá⌐½«óá∩ ß¿ßΓÑ¼á «Γ¬αδóáÑΓß∩ ó »Ñαóδ⌐ αáº, óßÑ ñ¿ß-
- ¬«óδÑ í½«¬¿ ¡áσ«ñ∩Γß∩ ó ß»¿ß¬Ñ ßó«í«ñ¡δσ í½«¬«ó. è«úñá ñ¿ß¬«óδ⌐ í½«¬ óδí¿αá-
- ÑΓß∩ ñ½∩ ¿ß»«½∞º«óá¡¿∩, ∩ñα« πñá½∩ÑΓ Ñú« ¡«¼Ñα ¿º ß»¿ß¬á ßó«í«ñ¡δσ í½«¬«ó ¿
- ¡áº¡áτáÑΓ í½«¬ ¿¡ñѬßπ. ƒñα« ¡Ñ ¼«ªÑΓ »Ñαѡạáτ¿Γ∞ ñ¿ß¬«óδ⌐ í½«¬ ñαπú«¼π
- ¿¡ñѬßπ ñ« ΓÑσ »«α, »«¬á í½«¬ ¡Ñ íπñÑΓ ó«ºóαáΘÑ¡ ó ß»¿ß«¬ ßó«í«ñ¡δσ í½«¬«ó.
- Æá¬¿¼ «íαẫ¼, ñ¿ß¬«óδ⌐ í½«¬ ¼«ªÑΓ ½¿í« ¡áσ«ñ¿Γ∞ß∩ ó ß»¿ß¬Ñ ßó«í«ñ¡δσ í½«-
- ¬«ó, ½¿í« íδΓ∞ ¡áº¡áτÑ¡¡δ¼ «ñ¡«¼π ¿º ¿¡ñѬ߫ó. Éáßß¼«Γα¿¼ αẽ¿τ¡δÑ ß¿Γπá-
- µ¿¿, ¼«úπΘ¿Ñ ¿¼ÑΓ∞ ¼ÑßΓ« »α¿ «ßó«í«ªñÑ¡¿¿ ∩ñα«¼ ñ¿ß¬«ó«ú« í½«¬á, »α¿¡áñ½Ñ-
- ªáóΦÑú« Σá⌐½π, ß ó«ºóαáΘÑ¡¿Ñ¼ ¡«¼Ñαá í½«¬á ó ßπ»Ñαí½«¬, ¡áσ«ñ∩Θ¿⌐ß∩ ó »á¼∩-
- Γ¿, ¿ »α¿ óδñѽѡ¿¿ ñ¿ß¬«ó«ú« í½«¬á ¡«ó«¼π Σá⌐½π. àß½¿ ∩ñα« ºá»¿ßδóὫ ¡á
- ñ¿ß¬ ¿¡ñÑ¬ß ¿ í½«¬¿ ¡«ó«ú« Σá⌐½á, ¡« »ÑαÑñ ó¡ÑßÑ¡¿Ñ¼ ¿º¼Ñ¡Ñ¡¿⌐ ó ¿¡ñѬß
- »αѪ¡Ñú« Σá⌐½á ¡á ñ¿ß¬Ñ »α«¿º«Φѽ ßí«⌐, «íá ¿¡ñѬßá íπñπΓ áñαÑß«óáΓ∞ ¬ «ñ¡«-
-
-
-
- 130
-
- ¼π ¿ Γ«¼π ªÑ ¡«¼Ñαπ ñ¿ß¬«ó«ú« í½«¬á. Å«ñ«í¡δ¼ ªÑ «íαẫ¼, Ñß½¿ ∩ñα« »ÑαÑ»¿-
- ßδóὫ ¡á ñ¿ß¬ ßπ»Ñαí½«¬ ¿ Ñú« ß»¿ß¬¿ ßó«í«ñ¡δσ αÑßπαß«ó ¿ »ÑαÑñ »ÑαÑ»¿ß∞ε
- ßΓáα«ú« ¿¡ñѬßá ß½πτ¿½ß∩ ßí«⌐, ñ¿ß¬«óδ⌐ í½«¬ »«∩ó¿Γß∩ «ñ¡«óαѼѡ¡« ¿ ó ß»¿ß-
- ¬Ñ ßó«í«ñ¡δσ í½«¬«ó, ¿ ó ßΓáα«¼ ¿¡ñѬßÑ.
- àß½¿ í½«¬ «ΓßπΓßΓóπÑΓ ¬á¬ ó ß»¿ß¬Ñ ßó«í«ñ¡δσ í½«¬«ó, Γᬠ¿ ó Σá⌐½Ñ, Σá⌐-
- ½«óá∩ ß¿ßΓѼá ∩ó½∩ÑΓß∩ ¡Ñß«ú½áß«óá¡¡«⌐, ¿í«, ¬á¬ πªÑ ú«ó«α¿½«ß∞ óδΦÑ, óßÑ
- í½«¬¿ «í∩ºá¡δ úñÑ-¡¿íπñ∞ »α¿ßπΓßΓó«óáΓ∞. Æá¬á∩ ß¿Γπᵿ∩ ¼«ú½á íδ »α«¿º«⌐Γ¿,
- Ñß½¿ íδ í½«¬ íδ½ πñá½Ñ¡ ¿º Σá⌐½á ¿ »«¼ÑΘÑ¡ ó ß»¿ß«¬ ßó«í«ñ¡δσ í½«¬«ó ó ßπ-
- »Ñαí½«¬Ñ. àß½¿ »α«¿ºó«ñ¿½áß∞ ºá»¿ß∞ »αѪ¡Ñú« Σá⌐½á ¡á ñ¿ß¬ ¿ ß¿ßΓѼá ñá½á
- ßí«⌐ »ÑαÑñ ºá»¿ß∞ε ßπ»Ñαí½«¬á, í½«¬ íπñÑΓ «ΓßπΓßΓó«óáΓ∞ ó« óßÑσ ß»¿ß¬áσ,
- σαá¡∩Θ¿σß∩ ¡á ñ¿ß¬Ñ.
- ê¡ñÑ¬ß ¼«ªÑΓ ¿¼ÑΓ∞ ßτÑΓτ¿¬ ßó∩ºÑ⌐ ß ¡Ñ¡π½Ñóδ¼ º¡áτÑ¡¿Ñ¼ »α¿ Γ«¼, τΓ« Ñú«
- ¡«¼Ñα «ΓßπΓßΓóπÑΓ ó« óßÑσ ¬áΓὫúáσ Σá⌐½«ó«⌐ ß¿ßΓѼδ. éßÑ Σá⌐½δ, ºá ¿ß¬½ετÑ-
- ¡¿Ñ¼ ¬á¡á½«ó (¡Ñ»«¿¼Ñ¡«óá¡¡δσ), ñ«½ª¡δ »α¿ßπΓßΓó«óáΓ∞ ó ñαÑó«ó¿ñ¡«⌐ ßΓαπ¬Γπ-
- αÑ Σá⌐½«ó«⌐ ß¿ßΓѼδ. àß½¿ ß¿ßΓѼá ñá½á ßí«⌐ »«ß½Ñ ß«ºñá¡¿∩ ¬á¡á½á ¿½¿ «íδτ-
- ¡«ú« Σá⌐½á, ¡« »ÑαÑñ ß«ºñ᡿Ѽ ß««ΓóÑΓßΓóπεΘÑ⌐ φΓ«¼π ¬á¡á½π ¿½¿ Σá⌐½π Γ«τ¬¿
- óσ«ñá ó ¬áΓὫú, ¿¡ñÑ¬ß íπñÑΓ ¿¼ÑΓ∞ ó »«½Ñ ßτÑΓτ¿¬á ßó∩ºÑ⌐ πßΓá¡«ó½Ñ¡¡«Ñ
- º¡áτÑ¡¿Ñ, »πßΓ∞ ñáªÑ «¡ ∩ó¡« ¡Ñ »α¿ßπΓßΓóπÑΓ ó Σá⌐½«ó«⌐ ß¿ßΓѼÑ. àΘÑ «ñ¡á
- »α«í½Ñ¼á ¼«ªÑΓ ó«º¡¿¬¡πΓ∞, Ñß½¿ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ unlink íδ½á πñá½Ñ¡á ßó∩º∞
- ¬áΓὫúá íѺ »α«óÑન πñá½Ñ¡¿∩ ¿º ¬áΓὫúá óßÑσ ß«ñÑαªáΘ¿σß∩ ó ¡Ñ¼ ßó∩ºÑ⌐ ß
- «Γñѽ∞¡δ¼¿ Σá⌐½á¼¿.
-
- àß½¿ Σ«α¼áΓ ¿¡ñѬßá ¡ÑóÑαÑ¡ (¡á»α¿¼Ñα, Ñß½¿ º¡áτÑ¡¿Ñ »«½∩ Γ¿»á Σá⌐½á ¡Ñ
- «»αÑñѽѡ«), º¡áτ¿Γ úñÑ-Γ« ¿¼ÑÑΓß∩ «Φ¿í¬á. ¥Γ« ¼«ªÑΓ »α«¿º«⌐Γ¿, Ñß½¿ áñ¼¿-
- ¡¿ßΓαáΓ«α ß¼«¡Γ¿α«óá½ Σá⌐½«óπε ß¿ßΓѼπ, ¬«Γ«αá∩ «ΓΣ«α¼áΓ¿α«óá¡á ¡Ñ»αáó¿½∞¡«.
- ƒñα« «íαáΘáÑΓß∩ ¬ ΓѼ ñ¿ß¬«óδ¼ í½«¬á¼, ¬«Γ«αδÑ, ¬á¬ ¬áªÑΓß∩ ∩ñαπ, ß«ñÑαªáΓ
- ¿¡ñѬßδ, ¡« ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ «¬áºδóáÑΓß∩, τΓ« «¡¿ ß«ñÑαªáΓ ñá¡¡δÑ.
- àß½¿ ¡«¼Ñα ¿¡ñѬßá »α¿ßπΓßΓóπÑΓ ó ºá»¿ß¿ ¬áΓὫúá, ¡« ßá¼ ¿¡ñÑ¬ß ßó«í«-
- ñÑ¡, Σá⌐½«óá∩ ß¿ßΓѼá ∩ó½∩ÑΓß∩ ¡Ñß«ú½áß«óá¡¡«⌐, »«ß¬«½∞¬π ¡«¼Ñα ¿¡ñѬßá ó
- ºá»¿ß¿ ¬áΓὫúá ñ«½ªÑ¡ íδΓ∞ ¡«¼Ñα«¼ ¡áº¡áτÑ¡¡«ú« ¿¡ñѬßá. ¥Γ« ¼«ú½« íδ »α«¿-
- º«⌐Γ¿, Ñß½¿ íδ ∩ñα«, ß«ºñáóá∩ ¡«óδ⌐ Σá⌐½ ¿ ºá»¿ßδóá∩ ¡á ñ¿ß¬ ¡«óπε Γ«τ¬π
- óσ«ñá ó ¬áΓὫú, ¡Ñ π߻ѽá íδ ߬«»¿α«óáΓ∞ ¡á ñ¿ß¬ ¿¡ñÑ¬ß Σá⌐½á ¿º-ºá ßí«∩.
- Æá¬ªÑ φΓ« ¼«ªÑΓ ß½πτ¿Γ∞ß∩, Ñß½¿ »α«µÑßß, πñá½∩∩ ßó∩º∞ Σá⌐½á ß ¬áΓὫú«¼, ºá-
- »¿ΦÑΓ «ßó«í«ñ¿óΦ¿⌐ß∩ ¿¡ñÑ¬ß ¡á ñ¿ß¬, ¡« ¡Ñ πß»ÑÑΓ «Γ¬«ααÑ¬Γ¿α«óáΓ∞ ¬áΓὫú
- ¿º-ºá ßí«∩. 髺¡¿¬¡«óÑ¡¿Ñ »«ñ«í¡δσ ß¿Γπᵿ⌐ ¼«ª¡« »αÑñ«ΓóαáΓ¿Γ∞, ¬«»¿απ∩ ¡á
- ñ¿ß¬ αѺπ½∞ΓáΓδ αáí«Γδ ó ¡áñ½ÑªáΘѼ »«α∩ñ¬Ñ.
- àß½¿ τ¿ß½« ßó«í«ñ¡δσ í½«¬«ó ¿½¿ ßó«í«ñ¡δσ ¿¡ñѬ߫ó, ºá»¿ßá¡¡«Ñ ó ßπ»Ñαí-
- ½«¬Ñ, ¡Ñ ß«ó»áñáÑΓ ß ¿σ ¬«½¿τÑßΓó«¼ ¡á ñ¿ß¬Ñ, Σá⌐½«óá∩ ß¿ßΓѼá ΓᬠªÑ ∩ó½∩-
- ÑΓß∩ ¡Ñß«ú½áß«óá¡¡«⌐. êΓ«ú«óá∩ ¿¡Σ«α¼áµ¿∩ ó ßπ»Ñαí½«¬Ñ óßÑúñá ñ«½ª¡á ß««Γ-
- óÑΓßΓó«óáΓ∞ ¿¡Σ«α¼áµ¿¿ « ΓѬπΘѼ ß«ßΓ«∩¡¿¿ Σá⌐½«ó«⌐ ß¿ßΓѼδ.
-
-
- E5.19 é¢éÄä¢F
-
- ¥Γ«⌐ ú½áó«⌐ ºáóÑαΦáÑΓß∩ »Ñαóá∩ τáßΓ∞ ¬¡¿ú¿, »«ßó∩ΘÑ¡¡á∩ αáßß¼«ΓαÑ¡¿ε
- «ß«íÑ¡¡«ßΓÑ⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ. â½áóá »«º¡á¬«¼¿½á »«½∞º«óáΓѽ∩ ß ΓαѼ∩ Γáí½¿-
- µá¼¿, »α¿¡áñ½ÑªáΘ¿¼¿ ∩ñαπ: Γáí½¿µÑ⌐ »«½∞º«óáΓѽ∞߬¿σ ñÑß¬α¿»Γ«α«ó Σá⌐½á,
- ß¿ßΓѼ¡«⌐ Γáí½¿µÑ⌐ Σá⌐½«ó ¿ Γáí½¿µÑ⌐ ¼«¡Γ¿α«óá¡¿∩. é ¡Ñ⌐ αáßß¼«ΓαÑ¡δ á½ú«-
- α¿Γ¼δ óδ»«½¡Ñ¡¿∩ ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐, ¿¼ÑεΘ¿σ «Γ¡«ΦÑ¡¿Ñ ¬ Σá⌐½«ó«⌐ ß¿ßΓѼÑ, ¿
- óºá¿¼«ñÑ⌐ßΓó¿Ñ ¼Ñªñπ φΓ¿¼¿ Σπ¡¬µ¿∩¼¿. êßß½Ññ«óá¡δ ¡Ñ¬«Γ«αδÑ áíßΓαá¬Γ¡δÑ
- ßó«⌐ßΓóá Σá⌐½«ó«⌐ ß¿ßΓѼδ, »«ºó«½∩εΘ¿Ñ ß¿ßΓÑ¼Ñ UNIX »«ññÑনóáΓ∞ Σá⌐½«óδÑ
- ß¿ßΓѼδ αẽ¿τ¡δσ Γ¿»«ó. ìᬫ¡Ñµ, «»¿ßá¡ ¼Ñσá¡¿º¼ óδ»«½¡Ñ¡¿∩ ¬«¼á¡ñδ fsck,
- ¬«¡Γα«½¿απεΘÑ⌐ µÑ½«ßΓ¡«ßΓ∞ ¿ ß«ú½áß«óá¡¡«ßΓ∞ ñá¡¡δσ ó Σá⌐½«ó«⌐ ß¿ßΓѼÑ.
-
-
- E5.20 ôÅÉÇåìàìêƒF
-
- 1. Éáßß¼«Γα¿¼ »α«úαá¼¼π, »α¿óÑñÑ¡¡πε ¡á É¿ßπ¡¬Ñ 5.35. èá¬«Ñ º¡áτÑ¡¿Ñ ó«º-
- óαáΘáÑΓ ¬áªñá∩ «»Ñαᵿ∩ read ¿ τΓ« »α¿ φΓ«¼ ß«ñÑনΓß∩ ó íπΣÑαÑ ? Ä»¿-
-
- 131
-
- Φ¿ΓÑ, τΓ« »α«¿ßσ«ñ¿Γ ó ∩ñαÑ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ ¬áªñ«ú« ó맮óá read.
- 2. é¡«ó∞ óÑα¡Ñ¼ß∩ ¬ »α«úαá¼¼Ñ ¡á É¿ßπ¡¬Ñ 5.35 ¿ »αÑñ»«½«ª¿¼, τΓ« «»ÑαáΓ«α
- lseek(fd,9000L,0); ßΓ«¿Γ »ÑαÑñ »Ñαóδ¼ «íαáΘÑ¡¿Ñ¼ ¬ Σπ¡¬µ¿¿ read. ùΓ«
- ¿ΘÑΓ »α«µÑßß ¿ τΓ« »α¿ φΓ«¼ »α«¿ßσ«ñ¿Γ ó ∩ñαÑ ?
- 3. Åα«µÑßß ¼«ªÑΓ «Γ¬αδΓ∞ Σá⌐½ ñ½∩ αáí«Γδ ó αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩ ºá»¿ßÑ⌐ ó
- ¬«¡Ñµ Σá⌐½á, »α¿ φΓ«¼ ¿¼ÑÑΓß∩ ó ó¿ñπ, τΓ« ¬áªñá∩ «»Ñαᵿ∩ ºá»¿ß¿ αáß-
- »«½áúáÑΓ ñá¡¡δÑ »« áñαÑßπ ß¼ÑΘÑ¡¿∩, π¬áºδóáεΘÑú« ΓѬπΘ¿⌐ ¬«¡Ñµ Σá⌐½á.
- Æá¬¿¼ «íαẫ¼, ñóá »α«µÑßßá ¼«úπΓ «Γ¬αδΓ∞ Σá⌐½ ñ½∩ αáí«Γδ ó αѪ¿¼Ñ ñ«-
- íáó½Ñ¡¿∩ ºá»¿ßÑ⌐ ó ¬«¡Ñµ Σá⌐½á ¿ óó«ñ¿Γ∞ ñá¡¡δÑ, ¡Ñ «»áßá∩ß∞ ºáΓÑαÑΓ∞
- ºá»¿ß¿ ñαπú ñαπúπ. ùΓ« »α«¿º«⌐ñÑΓ, Ñß½¿ »α«µÑßß «Γ¬α«ÑΓ Σá⌐½ ó αѪ¿¼Ñ
- ñ«íáó½Ñ¡¿∩ ó ¬«¡Ñµ, á ºá»¿ßδóáεΘπε ú«½«ó¬π πßΓá¡«ó¿Γ ¡á ¡áτὫ Σá⌐½á ?
- 4. ü¿í½¿«ΓѬá ßΓá¡ñáαΓ¡δσ »«ñ»α«úαá¼¼ óó«ñá-óδó«ñá »«óδΦáÑΓ φΣΣÑ¬Γ¿ó¡«ßΓ∞
- óδ»«½¡Ñ¡¿∩ »«½∞º«óáΓѽѼ «»Ñαᵿ⌐ τΓÑ¡¿∩ ¿ ºá»¿ß¿ í½áú«ñáα∩ íπΣÑਧá-
- µ¿¿ ñá¡¡δσ ó í¿í½¿«ΓÑ¬Ñ ¿ ß«σαá¡Ñ¡¿ε í«½∞Φ«ú« ¬«½¿τÑßΓóá ¼«ñπ½Ñ⌐ «íαá-
- ΘÑ¡¿∩ ¬ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼÑ, ¡Ñ«íσ«ñ¿¼δσ »«½∞º«óáΓѽε. èᬠíδ óδ αÑá-
- ½¿º«ó὿ í¿í½¿«ΓÑτ¡δÑ Σπ¡¬µ¿¿ fread ¿ fwrite ? ùΓ« ñ«½ª¡δ ñѽáΓ∞ í¿í-
- ½¿«ΓÑτ¡δÑ Σπ¡¬µ¿¿ fopen ¿ fclose ?
-
- ┌────────────────────────────────────────────────────────────┐
- │ #include <fcntl.h> │
- │ main() │
- │ { │
- │ int fd; │
- │ char buf[1024]; │
- │ fd = creat("junk",0666); │
- │ lseek(fd,2000L,2); /* ¿ΘÑΓß∩ íá⌐Γ ß ¡«¼Ñα«¼ 2000 */ │
- │ write(fd,"hello",5); │
- │ close(fd); │
- │ │
- │ fd = open("junk",O_RDONLY); │
- │ read(fd,buf,1024); /* τ¿ΓáÑΓ ¡π½¿ */ │
- │ read(fd,buf,1024); /* ßτ¿ΓδóáÑΓ ¡ÑτΓ«, «Γ½¿τ¡«Ñ «Γ 0 */│
- │ read(fd,buf,1024); │
- │ } │
- └────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.35. æτ¿Γδóá¡¿Ñ ¡π½Ñ⌐ ¿ ¬«¡µá Σá⌐½á
-
-
- 5. àß½¿ »α«µÑßß τ¿ΓáÑΓ ñá¡¡δÑ ¿º Σá⌐½á »«ß½Ññ«óáΓѽ∞¡«, ∩ñα« ºá»«¼¿¡áÑΓ
- º¡áτÑ¡¿Ñ í½«¬á, »α«τ¿Γá¡¡«ú« ß »α«ñó¿ªÑ¡¿Ñ¼, ó ¿¡ñѬßÑ, σαá¡∩ΘѼß∩ ó
- »á¼∩Γ¿. ùΓ« »α«¿º«⌐ñÑΓ, Ñß½¿ ¡Ñ߬«½∞¬« »α«µÑßß«ó íπñπΓ «ñ¡«óαѼѡ¡«
- óÑßΓ¿ »«ß½Ññ«óáΓѽ∞¡«Ñ ßτ¿Γδóá¡¿Ñ ñá¡¡δσ ¿º «ñ¡«ú« ¿ Γ«ú« ªÑ Σá⌐½á ?
-
- ┌─────────────────────────────────────────────────────────┐
- │ #include <fcntl.h> │
- │ main() │
- │ { │
- │ int fd; │
- │ char buf[256]; │
- │ │
- │ fd = open("/etc/passwd",O_RDONLY); │
- │ if (read(fd,buf,1024) < 0) │
- │ printf("τΓÑ¡¿Ñ ºáóÑαΦáÑΓß∩ ¡Ñπñáτ¡«\n"); │
- │ } │
- └─────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.36. ùΓÑ¡¿Ñ í«½∞Φ«⌐ »«αµ¿¿ ñá¡¡δσ ó ¼á½Ñ¡∞¬¿⌐ íπΣÑα
-
-
- 132
-
- 6. Éáßß¼«Γα¿¼ »α«úαá¼¼π, »α¿óÑñÑ¡¡πε ¡á É¿ßπ¡¬Ñ 5.36. ùΓ« »α«¿º«⌐ñÑΓ ó
- αѺπ½∞ΓáΓÑ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ ? Äí«ß¡π⌐ΓÑ «ΓóÑΓ. ùΓ« »α«¿º«Φ½« íδ,
- Ñß½¿ íδ «íΩ∩ó½Ñ¡¿Ñ ¼áßß¿óá buf í佫 óßΓáó½Ñ¡« ¼Ñªñπ «íΩ∩ó½Ñ¡¿∩¼¿ ñóπσ
- ñαπú¿σ ¼áßß¿ó«ó αẼÑα«¼ 1024 φ½Ñ¼Ñ¡Γá ¬áªñδ⌐ ? èᬿ¼ «íαẫ¼ ∩ñα« πß-
- Γá¡áó½¿óáÑΓ, τΓ« »α«τ¿Γá¡¡á∩ »«αµ¿∩ ñá¡¡δσ ß½¿Φ¬«¼ óѽ¿¬á ñ½∩ íπΣÑαá ?
- *7. é Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ BSD αáºαÑΦáÑΓß∩ Σαáú¼Ñ¡Γ¿α«óáΓ∞ »«ß½Ññ¡¿⌐ í½«¬ Σá⌐-
- ½á ó ß««ΓóÑΓßΓó¿¿ ß« ß½ÑñπεΘ¿¼¿ »αáó¿½á¼¿:
- * æó«í«ñ¡δÑ Σαáú¼Ñ¡Γδ «Γ߽Ѫ¿óáεΓß∩ ó ßΓαπ¬Γπαáσ, »«ñ«í¡δσ ßπ»Ñαí½«¬π;
- * ƒñα« ¡Ñ »«ññÑনóáÑΓ »π½ αá¡ÑÑ óδñѽѡ¡δσ ßó«í«ñ¡δσ Σαáú¼Ñ¡Γ«ó, á
- αáºí¿óáÑΓ ¡á Σαáú¼Ñ¡Γδ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ßó«í«ñ¡δ⌐ í½«¬;
- * ƒñα« ¼«ªÑΓ ¡áº¡áτáΓ∞ Σαáú¼Ñ¡Γδ í½«¬á Γ«½∞¬« ñ½∩ »«ß½Ññ¡Ñú« í½«¬á ó
- Σá⌐½Ñ;
- * àß½¿ í½«¬ αáºí¿Γ ¡á ¡Ñ߬«½∞¬« Σαáú¼Ñ¡Γ«ó, ∩ñα« ¼«ªÑΓ ¡áº¡áτ¿Γ∞ ¿σ
- αẽ¿τ¡δ¼ Σá⌐½á¼;
- * 諽¿τÑßΓó« Σαáú¼Ñ¡Γ«ó ó í½«¬Ñ ¡Ñ ñ«½ª¡« »αÑóδΦáΓ∞ óѽ¿τ¿¡π, Σ¿¬ß¿α«-
- óá¡¡πε ñ½∩ ñá¡¡«⌐ Σá⌐½«ó«⌐ ß¿ßΓѼδ;
- * ƒñα« ¡áº¡áτáÑΓ Σαáú¼Ñ¡Γδ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿
- write.
-
- Éáºαáí«Γá⌐ΓÑ á½ú«α¿Γ¼, »α¿ß«Ññ¿¡∩εΘ¿⌐ ¬ Σá⌐½π Σαáú¼Ñ¡Γδ í½«¬á. èᬿÑ
- ¿º¼Ñ¡Ñ¡¿∩ ñ«½ª¡δ íδΓ∞ ßñѽá¡δ ó ¿¡ñѬßÑ, τΓ«íδ »«ºó«½¿Γ∞ ¿ß»«½∞º«óá¡¿Ñ
- Σαáú¼Ñ¡Γ«ó ? èá¬¿Ñ »αÑ¿¼πΘÑßΓóá ß ß¿ßΓѼ¡«⌐ Γ«τ¬¿ ºαÑ¡¿∩ »αÑñ«ßΓáó½∩ÑΓ
- ¿ß»«½∞º«óá¡¿Ñ Σαáú¼Ñ¡Γ«ó ñ½∩ ΓÑσ Σá⌐½«ó, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ í½«¬¿ ¬«ß-
- óÑ¡¡«⌐ áñαÑßᵿ¿ ? ìÑ óδú«ñ¡ÑÑ ½¿ í佫 íδ ¡áº¡áτáΓ∞ Σαáú¼Ñ¡Γδ ó« óαѼ∩
- óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿¿ close ó¼ÑßΓ« Γ«ú«, τΓ«íδ ¡áº¡áτáΓ∞ ¿σ »α¿ óδ»«½¡Ñ-
- ¡¿¿ Σπ¡¬µ¿¿ write ?
- *8. éÑα¡Ñ¼ß∩ ¬ «íßπªñÑ¡¿ε, ¡áτáΓ«¼π ó ú½áóÑ 4 ¿ ¬áßáεΘѼπß∩ αáß»«½«ªÑ¡¿∩
- ñá¡¡δσ ó ¿¡ñѬßÑ Σá⌐½á. ä½∩ Γ«ú« ß½πτá∩, ¬«úñá ¿¡ñÑ¬ß ¿¼ÑÑΓ αẼÑα
- ñ¿ß¬«ó«ú« í½«¬á, αáºαáí«Γá⌐ΓÑ á½ú«α¿Γ¼, »« ¬«Γ«α«¼π «ßΓáΓ«¬ ñá¡¡δσ
- Σá⌐½á »ÑαÑ»¿ßδóáÑΓß∩ ó ¿¡ñѬߡδ⌐ í½«¬, Ñß½¿ »«¼ÑΘáÑΓß∩ Γπñá. æαáó¡¿ΓÑ
- φëà ¼ÑΓ«ñ ß ¼ÑΓ«ñ«¼, »αÑñ½«ªÑ¡¡δ¼ ñ½∩ αÑΦÑ¡¿∩ »αÑñδñπΘÑ⌐ »α«í½Ñ¼δ.
- *9. é óÑαß¿¿ V ß¿ßΓѼδ Σπ¡¬µ¿∩ fcntl ¿ß»«½∞ºπÑΓß∩ ñ½∩ αÑ὿ºáµ¿¿ ¼Ñσá¡¿º¼á
- ºáσóáΓá Σá⌐½á ¿ ºá»¿ß¿ ¿ ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ Σ«α¼áΓ: fcntl(fd,cmd,arg);
- úñÑ fd - ñÑß¬α¿»Γ«α Σá⌐½á, cmd - Γ¿» í½«¬¿απεΘÑ⌐ «»Ñαᵿ¿, á ó arg
- π¬áºδóáεΓß∩ αẽ¿τ¡δÑ »áαá¼ÑΓαδ, Γá¬¿Ñ ¬á¬ Γ¿» í½«¬¿α«ó¬¿ (ºá»¿ß¿ ¿½¿
- τΓÑ¡¿∩) ¿ ß¼ÑΘÑ¡¿∩ ó íá⌐Γáσ (ß¼. »α¿½«ªÑ¡¿Ñ). è í½«¬¿απεΘ¿¼ «»Ñαᵿ∩¼
- «Γ¡«ß∩Γß∩
- * Åα«óÑα¬á ¡á½¿τ¿∩ í½«¬¿α«ó«¬, »α¿¡áñ½ÑªáΘ¿σ ñαπú¿¼ »α«µÑßßá¼, ß ¡Ñ-
- ¼Ññ½Ñ¡¡δ¼ ó«ºóαáΓ«¼ π»αáó½Ñ¡¿∩ ó ß½πτáÑ «í¡áαπªÑ¡¿∩ Γᬿσ í½«¬¿α«-
- ó«¬,
- * ôßΓá¡«ó¬á í½«¬¿α«ó¬¿ ¿ »α¿«ßΓá¡«ó ñ« πß»ÑΦ¡«ú« ºáóÑαΦÑ¡¿∩,
- * ôßΓá¡«ó¬á í½«¬¿α«ó¬¿ ß ¡Ñ¼Ññ½Ñ¡¡δ¼ ó«ºóαáΓ«¼ π»αáó½Ñ¡¿∩ ó ß½πτáÑ ¡Ñ-
- πñáτ¿.
- ƒñα« áóΓ«¼áΓ¿τÑ߬¿ ß¡¿¼áÑΓ í½«¬¿α«ó¬¿, πßΓá¡«ó½Ñ¡¡δÑ »α«µÑßß«¼, »α¿
- ºá¬αδΓ¿¿ Σá⌐½á. Ä»¿Φ¿ΓÑ αáí«Γπ á½ú«α¿Γ¼á, αÑ὿ºπεΘÑú« ºáσóáΓ Σá⌐½á ¿
- ºá»¿ß¿. àß½¿ í½«¬¿α«ó¬¿ ∩ó½∩εΓß∩ «í∩ºáΓѽ∞¡δ¼¿, ñαπú¿¼ »α«µÑßßá¼ ß½Ñ-
- ñπÑΓ ºá»αÑΓ¿Γ∞ ñ«ßΓπ» ¬ Σá⌐½π. èá¬¿Ñ ¿º¼Ñ¡Ñ¡¿∩ ß½ÑñπÑΓ ßñѽáΓ∞ ó «»Ñ-
- αᵿ∩σ τΓÑ¡¿∩ ¿ ºá»¿ß¿ ?
- *10. àß½¿ »α«µÑßß »α¿«ßΓá¡«ó¿½ ßó«ε αáí«Γπ ó «ª¿ñá¡¿¿ ß¡∩Γ¿∩ ß Σá⌐½á í½«¬¿-
- α«ó¬¿, 󫺡¿¬áÑΓ «»áß¡«ßΓ∞ óºá¿¼¡«⌐ í½«¬¿α«ó¬¿: »α«µÑßß A ¼«ªÑΓ ºáí½«-
- ¬¿α«óáΓ∞ Σá⌐½ "one" ¿ »«»δΓáΓ∞ß∩ ºáí½«¬¿α«óáΓ∞ Σá⌐½ "two", á »α«µÑßß B
- ¼«ªÑΓ ºáí½«¬¿α«óáΓ∞ Σá⌐½ "two" ¿ »«»δΓáΓ∞ß∩ ºáí½«¬¿α«óáΓ∞ Σá⌐½ "one".
- Äíá »α«µÑßßá »ÑαÑ⌐ñπΓ ó ß«ßΓ«∩¡¿Ñ, »α¿ ¬«Γ«α«¼ «¡¿ ¡Ñ ß¼«úπΓ »α«ñ«½-
- ª¿Γ∞ ßó«ε αáí«Γπ. ÉáßΦ¿α∞ΓÑ á½ú«α¿Γ¼ αÑΦÑ¡¿∩ »αÑñδñπΘÑ⌐ »α«í½Ñ¼δ Γᬿ¼
- «íαẫ¼, τΓ«íδ ∩ñα« ¼«ú½« «í¡áαπª¿óáΓ∞ ß¿Γπᵿ¿ óºá¿¼¡«⌐ í½«¬¿α«ó¬¿ ¿
- »αÑαδóáΓ∞ óδ»«½¡Ñ¡¿Ñ ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐. æ½ÑñπÑΓ ½¿ »«απτáΓ∞ «í¡áαπªÑ-
- ¡¿Ñ óºá¿¼¡δσ í½«¬¿α«ó«¬ ∩ñαπ ?
- 11. ä« ßπΘÑßΓó«óá¡¿∩ ߻ѵ¿á½∞¡«⌐ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ ºáσóáΓá Σá⌐½á »«½∞º«óá-
- Γѽ∩¼ »α¿σ«ñ¿½«ß∞ »α¿íÑúáΓ∞ ¬ πß½πúá¼ »áαώѽ∞¡« ñÑ⌐ßΓóπεΘ¿σ »α«µÑß-
-
- 133
-
- ß«ó ñ½∩ αÑ὿ºáµ¿¿ ¼Ñσá¡¿º¼á ºáσóáΓá »πΓѼ ó맮óá ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐,
- óδ»«½¡∩εΘ¿σ φ½Ñ¼Ñ¡Γáα¡δÑ ñÑ⌐ßΓó¿∩. èá¬¿Ñ ¿º ß¿ßΓѼ¡δσ Σπ¡¬µ¿⌐, «»¿ßá¡-
- ¡δσ ó φΓ«⌐ ú½áóÑ, ¼«ú½¿ íδ ¿ß»«½∞º«óáΓ∞ß∩ ? èá¬¿Ñ «»áß¡«ßΓ¿ »«ñßΓÑαÑ-
- úáεΓ »α¿ ¿ß»«½∞º«óá¡¿¿ φΓ¿σ ¼ÑΓ«ñ«ó ?
- 12. É¿τ¿ ºá∩ó½∩½ (ß¼. [Ritchie 81]), τΓ« ºáσóáΓá Σá⌐½á ¡Ññ«ßΓáΓ«τ¡« ñ½∩
- Γ«ú«, τΓ«íδ »αÑñ«ΓóαáΓ¿Γ∞ »πΓá¡¿µπ, óδºδóáѼπε Γᬿ¼¿ »α«úαἼἿ, ¬á¬
- αÑñá¬Γ«αδ, ¬«Γ«αδÑ ß«ºñáεΓ ¬«»¿ε Σá⌐½á »α¿ αÑñá¬Γ¿α«óá¡¿¿ ¿ »ÑαÑ»¿ßδ-
- óáεΓ »Ñαó«¡áτá½∞¡δ⌐ Σá⌐½ »« «¬«¡τá¡¿¿ αáí«Γδ. ÄíΩ∩ß¡¿ΓÑ, τΓ« «¡ ¿¼Ñ½ ó
- ó¿ñπ, ¿ »α«¬«¼¼Ñ¡Γ¿απ⌐ΓÑ.
- 13. Éáßß¼«Γα¿¼ ÑΘÑ «ñ¿¡ ß»«ß«í í½«¬¿α«ó¬¿ Σá⌐½«ó, »αÑñ«ΓóαáΘáεΘ¿⌐ αáºαπΦ¿-
- Γѽ∞¡δÑ »«ß½ÑñßΓó¿∩ ¬«ααÑ¬Γ¿α«ó¬¿. ÅαÑñ»«½«ª¿¼, τΓ« ó ¿¡ñѬßÑ ß«ñÑα-
- ª¿Γß∩ ¡«óá∩ πßΓá¡«ó¬á »αáó ñ«ßΓπ»á, »«ºó«½∩εΘá∩ Γ«½∞¬« «ñ¡«¼π »α«µÑßßπ
- ó ΓѬπΘ¿⌐ ¼«¼Ñ¡Γ «Γ¬αδóáΓ∞ Σá⌐½ ñ½∩ ºá»¿ß¿ ¿ ¡Ñ߬«½∞¬¿¼ »α«µÑßßá¼ «Γ¬-
- αδóáΓ∞ Σá⌐½ ñ½∩ τΓÑ¡¿∩. Ä»¿Φ¿ΓÑ αÑ὿ºáµ¿ε φΓ«ú« ß»«ß«íá.
-
- ┌──────────────────────────────────────────────────────────┐
- │ main(argc,argv) │
- │ int argc; │
- │ char *argv[]; │
- │ { │
- │ if (argc != 2) │
- │ { │
- │ printf("óóÑñ¿ΓÑ: ¬«¼á¡ñá ¿¼∩ ¬áΓὫúá\n"); │
- │ exit(); │
- │ } │
- │ │
- │ /* »αáóá ñ«ßΓπ»á ¬ ¬áΓὫúπ: ºá»¿ß∞, τΓÑ¡¿Ñ ¿ ¿ß- │
- │ »«½¡Ñ¡¿Ñ αáºαÑΦÑ¡δ ñ½∩ óßÑσ */ │
- │ /* Γ«½∞¬« ßπ»Ñα»«½∞º«óáΓѽ∞ ¼«ªÑΓ ñѽáΓ∞ ß½Ññπε- │
- │ ΘÑÑ */ │
- │ if (mknod(argv[1],040777,0) == -1) │
- │ printf("mknod ºáóÑαΦ¿½áß∞ ¡Ñπñáτ¡«\n"); │
- │ } │
- └──────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.37. èáΓὫú, ß«ºñá¡¿Ñ ¬«Γ«α«ú« ¡Ñ ºáóÑαΦÑ¡«
-
-
- *14. Éáßß¼«Γα¿¼ »α«úαá¼¼π (É¿ßπ¡«¬ 5.37), ¬«Γ«αá∩ ß«ºñáÑΓ ¬áΓὫú ß ¡ÑóÑα-
- ¡δ¼ Σ«α¼áΓ«¼ (ó ¬áΓὫúÑ «ΓßπΓßΓóπεΓ ºá»¿ß¿ ß ¿¼Ñ¡á¼¿ "." ¿ "..").
- Å«»α«íπ⌐ΓÑ, ¡áσ«ñ∩ß∞ ó φΓ«¼ ¬áΓὫúÑ, óδ»«½¡¿Γ∞ ¡Ñ߬«½∞¬« ¬«¼á¡ñ, Γá-
- ¬¿σ ¬á¬ ls -l, ls -ld, ¿½¿ cd. ùΓ« »α«¿º«⌐ñÑΓ »α¿ φΓ«¼ ?
- 15. ìá»¿Φ¿ΓÑ »α«úαá¼¼π, ¬«Γ«αá∩ óδó«ñ¿Γ ñ½∩ Σá⌐½«ó, ¿¼Ñ¡á ¬«Γ«αδσ π¬áºá¡δ
- ó ¬áτÑßΓóÑ »áαá¼ÑΓα«ó, ¿¡Σ«α¼áµ¿ε « ó½áñѽ∞µÑ, Γ¿»Ñ Σá⌐½á, »αáóáσ ñ«ß-
- Γπ»á ¿ óαѼѡ¿ ñ«ßΓπ»á. àß½¿ Σá⌐½ (»áαá¼ÑΓα) ∩ó½∩ÑΓß∩ ¬áΓὫú«¼, »α«ú-
- αá¼¼á ñ«½ª¡á τ¿ΓáΓ∞ ºá»¿ß¿ ¿º ¬áΓὫúá ¿ óδó«ñ¿Γ∞ óδΦÑπ¬áºá¡¡πε ¿¡Σ«α-
- ¼áµ¿ε ñ½∩ óßÑσ Σá⌐½«ó ó ¬áΓὫúÑ.
- 16. ÅαÑñ»«½«ª¿¼, τΓ« π »«½∞º«óáΓѽ∩ ÑßΓ∞ αáºαÑΦÑ¡¿Ñ ¡á τΓÑ¡¿Ñ ¿º ¬áΓὫúá,
- ¡« ¡ÑΓ αáºαÑΦÑ¡¿∩ ¡á ¿ß»«½¡Ñ¡¿Ñ. ùΓ« »α«¿º«⌐ñÑΓ, Ñß½¿ ¬áΓὫú ¿ß»«½∞-
- º«óáΓ∞ ó ¬áτÑßΓóÑ »áαá¼ÑΓαá ¬«¼á¡ñδ ls, ºáñá¡¡«⌐ ß «»µ¿Ñ⌐ "-i" ? ùΓ«
- íπñÑΓ, Ñß½¿ π¬áºá¡á «»µ¿∩ "-l" ? Å«∩ß¡¿ΓÑ ßó«¿ «ΓóÑΓδ. ÄΓóÑΓ∞ΓÑ ¡á
- ó«»α«ß, ßΣ«α¼π½¿α«óá¡¡δ⌐ ñ½∩ ß½πτá∩, ¬«úñá ÑßΓ∞ αáºαÑΦÑ¡¿Ñ ¡á ¿ß»«½¡Ñ-
- ¡¿Ñ, ¡« ¡ÑΓ αáºαÑΦÑ¡¿∩ ¡á τΓÑ¡¿Ñ ¿º ¬áΓὫúá.
- 17. æαáó¡¿ΓÑ »αáóá ñ«ßΓπ»á, ¬«Γ«αδÑ ñ«½ª¡δ íδΓ∞ π »α«µÑßßá ñ½∩ óδ»«½¡Ñ¡¿∩
- ß½ÑñπεΘ¿σ ñÑ⌐ßΓó¿⌐, ¿ »α«¬«¼¼Ñ¡Γ¿απ⌐ΓÑ:
- * ä½∩ ß«ºñá¡¿∩ ¡«ó«ú« Σá⌐½á ΓαÑíπÑΓß∩ αáºαÑΦÑ¡¿Ñ ¡á ºá»¿ß∞ ó ¬áΓὫú.
- * ä½∩ "ß«ºñá¡¿∩" ßπΘÑßΓóπεΘÑú« Σá⌐½á ΓαÑíπÑΓß∩ αáºαÑΦÑ¡¿Ñ ¡á ºá»¿ß∞ ó
- Σá⌐½.
- * ä½∩ πñá½Ñ¡¿∩ ßó∩º¿ Σá⌐½á ß ¬áΓὫú«¼ ΓαÑíπÑΓß∩ αáºαÑΦÑ¡¿Ñ ¡á ºá»¿ß∞
-
- 134
-
- ó ¬áΓὫú, á ¡Ñ ó Σá⌐½.
- *18. ìá»¿Φ¿ΓÑ »α«úαá¼¼π, ¬«Γ«αá∩ ¡áóÑΘáÑΓ óßÑ ¬áΓὫú¿, ¡áτ¿¡á∩ ß ΓѬπΘÑú«.
- èᬠ«¡á ñ«½ª¡á π»αáó½∩Γ∞ µ¿¬½á¼¿ ó ¿Ñαáασ¿¿ ¬áΓὫú«ó ?
- 19. éδ»«½¡¿ΓÑ »α«úαá¼¼π, »α¿óÑñÑ¡¡πε ¡á É¿ßπ¡¬Ñ 5.38, ¿ «íΩ∩ß¡¿ΓÑ, τΓ« »α¿
- φΓ«¼ »α«¿ßσ«ñ¿Γ ó ∩ñαÑ. (ìá¼Ñ¬: óδ»«½¡¿ΓÑ ¬«¼á¡ñπ pwd, ¬«úñá »α«úαá¼¼á
- ºá¬«¡τ¿Γß∩).
- 20. ìá»¿Φ¿ΓÑ »α«úαá¼¼π, ¬«Γ«αá∩ ºá¼Ñ¡∩ÑΓ ¬«α¡Ñó«⌐ ¬áΓὫú π¬áºá¡¡δ¼ ¬áΓá-
- ½«ú«¼, ¿ ¿ßß½Ññπ⌐ΓÑ ñÑαÑó« ¬áΓὫú«ó, ñ«ßΓπ»¡«Ñ ñ½∩ φΓ«⌐ »α«úαá¼¼δ.
- 21. Å«τѼπ »α«µÑßß ¡Ñ ¼«ªÑΓ «Γ¼Ñ¡¿Γ∞ »αÑñδñπΘ¿⌐ ó맮ó Σπ¡¬µ¿¿ chroot ? êº-
- ¼Ñ¡¿ΓÑ ¬«¡¬αÑΓ¡πε αÑ὿ºáµ¿ε »α«µÑßßá Γᬿ¼ «íαẫ¼, τΓ«íδ «¡ ¼«ú ¼Ñ-
- ¡∩Γ∞ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ ¬«α¡∩ ¡á »αÑñδñπΘÑÑ. èá¬¿Ñ π φΓ«⌐ 󫺼«ª¡«ßΓ¿
- »αÑ¿¼πΘÑßΓóá ¿ ¡Ñπñ«íßΓóá ?
- 22. Éáßß¼«Γα¿¼ »α«ßΓ«⌐ »α¿¼Ñα ¬á¡á½á (É¿ßπ¡«¬ 5.19), ¬«úñá »α«µÑßß ºá»¿ßδ-
- óáÑΓ ó ¬á¡á½ ßΓ᫬π "hello" ¿ ºáΓѼ ßτ¿ΓδóáÑΓ
-
- ┌──────────────────────────────────────────────────────────┐
- │ main(argc,argv) │
- │ int argc; │
- │ char *argv[]; │
- │ { │
- │ if (argc != 2) │
- │ { │
- │ printf("¡πªÑ¡ 1 áαúπ¼Ñ¡Γ - ¿¼∩ ¬áΓὫúá\n"); │
- │ exit(); │
- │ } │
- │ │
- │ if (chdir(argv[1]) == -1) │
- │ printf("%s Σá⌐½ ¡Ñ ∩ó½∩ÑΓß∩ ¬áΓὫú«¼\n",argv[1]);│
- │ } │
- └──────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 5.38. Åα¿¼Ñα »α«úαá¼¼δ ß ¿ß»«½∞º«ó᡿Ѽ Σπ¡¬µ¿¿ chdir
-
-
- ÑÑ. ùΓ« »α«¿º«Φ½« íδ, Ñß½¿ íδ ¼áßß¿ó ñ½∩ ºá»¿ß¿ ñá¡¡δσ ó ¬á¡á½ ¿¼Ñ½
- αẼÑα 1024 íá⌐Γá ó¼ÑßΓ« 6 (á «íΩѼ ßτ¿ΓδóáѼδσ ºá «ñ¡π «»Ñαᵿε ñá¡-
- ¡δσ «ßΓáóá½ß∩ αáó¡δ¼ 6) ? ùΓ« »α«¿º«⌐ñÑΓ, Ñß½¿ »«α∩ñ«¬ ó맮óá Σπ¡¬µ¿⌐
- read ¿ write ó »α«úαá¼¼Ñ ¿º¼Ñ¡¿Γ∞, »«¼Ñ¡∩ó Σπ¡¬µ¿¿ ¼ÑßΓἿ ?
- 23. ùΓ« »α«¿º«⌐ñÑΓ »α¿ óδ»«½¡Ñ¡¿¿ »α«úαá¼¼δ, ¿½½εßΓα¿απεΘÑ⌐ ¿ß»«½∞º«óá¡¿Ñ
- »«¿¼Ñ¡«óá¡¡δσ ¬á¡á½«ó (É¿ßπ¡«¬ 5.19), Ñß½¿ Σπ¡¬µ¿∩ mknod «í¡áαπª¿Γ,
- τΓ« ¬á¡á½ ß Γᬿ¼ ¿¼Ñ¡Ñ¼ πªÑ ßπΘÑßΓóπÑΓ ? èᬠφëà ¼«¼Ñ¡Γ αÑ὿ºπÑΓß∩
- ∩ñα«¼ ? ùΓ« »α«¿º«Φ½« íδ, Ñß½¿ íδ ó¼ÑßΓ« »«ñαáºπ¼ÑóáѼδσ ó ΓѬßΓÑ
- »α«úαá¼¼δ «ñ¡«ú« ßτ¿ΓδóáεΘÑú« ¿ «ñ¡«ú« ºá»¿ßδóáεΘÑú« »α«µÑßß«ó ßó∩º∞
- ¼Ñªñπ ß«í«⌐ τÑαѺ ¬á¡á½ »«»δΓ὿ß∞ πßΓá¡«ó¿Γ∞ ¡Ñ߬«½∞¬« ßτ¿ΓδóáεΘ¿σ ¿
- ºá»¿ßδóáεΘ¿σ »α«µÑßß«ó ? èᬠó φΓ«¼ ß½πτáÑ úáαá¡Γ¿α«óá½áß∞ íδ ßó∩º∞
- «ñ¡«ú« ßτ¿ΓδóáεΘÑú« »α«µÑßßá ß «ñ¡¿¼ ºá»¿ßδóáεΘ¿¼ »α«µÑßß«¼ ?
- 24. ÄΓ¬αδóá∩ »«¿¼Ñ¡«óá¡¡δ⌐ ¬á¡á½ ñ½∩ τΓÑ¡¿∩, »α«µÑßß »α¿«ßΓá¡áó½¿óáÑΓß∩ ñ«
- ΓÑσ »«α, »«¬á ÑΘÑ «ñ¿¡ »α«µÑßß ¡Ñ «Γ¬α«ÑΓ ¬á¡á½ ñ½∩ ºá»¿ß¿. Å«τѼπ ?
- ìÑ ¼«ú íδ »α«µÑßß πß»ÑΦ¡« »α«⌐Γ¿ Σπ¡¬µ¿ε open, »α«ñ«½ª¿Γ∞ αáí«Γπ ñ«
- Γ«ú« ¼«¼Ñ¡Γá, ¬«úñá ¿¼ íπñÑΓ »αÑñ»α¿¡∩Γá »«»δΓ¬á τΓÑ¡¿∩ ñá¡¡δσ ¿º ¬á-
- ¡á½á, ¿ »α¿«ßΓá¡«ó¿Γ∞ß∩ »α¿ óδ»«½¡Ñ¡¿¿ Σπ¡¬µ¿¿ read ?
- 25. èᬠíδ óδ αÑ὿º«ó὿ á½ú«α¿Γ¼ óδ»«½¡Ñ¡¿∩ ß¿ßΓѼ¡«⌐ Σπ¡¬µ¿¿ dup2 (¿º
- óÑαß¿¿ 7), óδºδóáѼ«⌐ ß½ÑñπεΘ¿¼ «íαẫ¼: dup2(oldfd,newfd);
- úñÑ oldfd - Σá⌐½«óδ⌐ ñÑß¬α¿»Γ«α, ¬«Γ«αδ⌐ ñπí½¿απÑΓß∩ ñÑß¬α¿»Γ«α«¼
- newfd ? ùΓ« »α«¿º«Φ½« íδ, Ñß½¿ íδ ñÑß¬α¿»Γ«α newfd πªÑ »α¿¡áñ½Ñªá½ «Γ-
- ¬αδΓ«¼π Σá⌐½π?
- *26. èá¬¿Ñ »«ß½ÑñßΓó¿∩ ¿¼Ñ½« íδ αÑΦÑ¡¿Ñ ∩ñαá »«ºó«½¿Γ∞ ñóπ¼ »α«µÑßßá¼ «ñ-
- ¡«óαѼѡ¡« ß¼«¡Γ¿α«óáΓ∞ «ñ¡π ¿ Γπ ªÑ Σá⌐½«óπε ß¿ßΓѼπ ó ñóπσ Γ«τ¬áσ
- ¼«¡Γ¿α«óá¡¿∩ ?
-
- 135
- 27. ÅαÑñ»«½«ª¿¼, τΓ« «ñ¿¡ »α«µÑßß ¼Ñ¡∩ÑΓ ßó«⌐ ΓѬπΘ¿⌐ ¬áΓὫú ¡á ¬áΓὫú
- "/mnt/a/b/c", »«ß½Ñ τÑú« ñαπú«⌐ »α«µÑßß ó ¬áΓὫúÑ "/mnt" ¼«¡Γ¿απÑΓ
- Σá⌐½«óπε ß¿ßΓѼπ. çáóÑαΦ¿Γß∩ ½¿ Σπ¡¬µ¿∩ mount πß»ÑΦ¡« ? ùΓ« »α«¿º«⌐-
- ñÑΓ, Ñß½¿ »Ñαóδ⌐ »α«µÑßß óδ»«½¡¿Γ ¬«¼á¡ñπ pwd ? ƒñα« ¡Ñ »«ºó«½¿Γ Σπ¡¬-
- µ¿¿ mount πß»ÑΦ¡« ºáóÑαΦ¿Γ∞ß∩, Ñß½¿ º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ßß佫¬ ó ¿¡ñѬßÑ
- ¬áΓὫúá "/mnt" »αÑóδΦáÑΓ 1. Å᫬«¼¼Ñ¡Γ¿απ⌐ΓÑ φëà ¼«¼Ñ¡Γ.
- 28. Åα¿ ¿ß»«½¡Ñ¡¿¿ á½ú«α¿Γ¼á »ÑαÑßÑτÑ¡¿∩ Γ«τ¬¿ ¼«¡Γ¿α«óá¡¿∩ »« ¿¼Ñ¡¿ ".."
- ó ¼áαΦαπΓÑ »«¿ß¬á Σá⌐½á ∩ñα« »α«óÑα∩ÑΓ óδ»«½¡Ñ¡¿Ñ ΓαÑσ πß½«ó¿⌐, ßó∩-
- ºá¡¡δσ ß Γ«τ¬«⌐ ¼«¡Γ¿α«óá¡¿∩: τΓ« ¡«¼Ñα «í¡áαπªÑ¡¡«ú« ¿¡ñѬßá ß«ó»áñá-
- ÑΓ ß ¡«¼Ñα«¼ ¬«α¡Ñó«ú« ¿¡ñѬßá, τΓ« αáí«τ¿⌐ ¿¡ñÑ¬ß ∩ó½∩ÑΓß∩ ¬«α¡Ñ¼
- Σá⌐½«ó«⌐ ß¿ßΓÑ¼δ ¿ τΓ« ¿¼∩ ¬«¼»«¡Ñ¡Γδ ¼áαΦαπΓá »«¿ß¬á - "..". Å«τѼπ
- ¡Ñ«íσ«ñ¿¼« »α«óÑα∩Γ∞ óδ»«½¡Ñ¡¿Ñ óßÑσ ΓαÑσ πß½«ó¿⌐ ? 䫬ᪿΓÑ, τΓ« »α«-
- óÑન ½εíδσ ñóπσ πß½«ó¿⌐ ¡Ññ«ßΓáΓ«τ¡« ñ½∩ Γ«ú«, τΓ«íδ αáºαÑΦ¿Γ∞ »α«-
- µÑßßπ »ÑαÑßÑτ∞ Γ«τ¬π ¼«¡Γ¿α«óá¡¿∩.
- 29. àß½¿ »«½∞º«óáΓѽ∞ ¼«¡Γ¿απÑΓ Σá⌐½«óπε ß¿ßΓѼπ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩, ∩ñα«
- πßΓá¡áó½¿óáÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐ Σ½áú ó ßπ»Ñαí½«¬Ñ. èᬠ∩ñα« ¼«ªÑΓ ó«ß»-
- αÑ»∩ΓßΓó«óáΓ∞ óδ»«½¡Ñ¡¿ε «»Ñαᵿ⌐ ºá»¿ß¿ ó Σπ¡¬µ¿∩σ write, creat,
- link, unlink, chown ¿ chmod ? èᬫú« α«ñá ¿¡Σ«α¼áµ¿ε ºá»¿ßδóáεΓ ó Σá⌐-
- ½«óπε ß¿ßΓѼπ óßÑ »ÑαÑτ¿ß½Ñ¡¡δÑ Σπ¡¬µ¿¿ ?
- *30. ÅαÑñ»«½«ª¿¼, τΓ« «ñ¿¡ »α«µÑßß »δΓáÑΓß∩ ñѼ«¡Γ¿α«óáΓ∞ Σá⌐½«óπε ß¿ßΓѼπ,
- ó Γ« óαѼ∩ ¬á¬ ñαπú«⌐ »α«µÑßß »δΓáÑΓß∩ ß«ºñáΓ∞ ó Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ ¡«-
- óδ⌐ Σá⌐½. Æ«½∞¬« «ñ¡á ¿º Σπ¡¬µ¿⌐ umount ¿ creat óδ»«½¡¿Γß∩ πß»ÑΦ¡«.
- Å«ñα«í¡« αáßß¼«Γα¿ΓÑ ó«º¡¿¬Φπε ¬«¡¬παÑ¡µ¿ε.
- *31. è«úñá Σπ¡¬µ¿∩ umount »α«óÑα∩ÑΓ «ΓßπΓßΓó¿Ñ ó Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ á¬Γ¿ó¡δσ
- Σá⌐½«ó, 󫺡¿¬áÑΓ «ñ¡á »α«í½Ñ¼á, ßó∩ºá¡¡á∩ ß ΓѼ, τΓ« ¬«α¡Ñó«⌐ ¿¡ñѬß
- Σá⌐½«ó«⌐ ß¿ßΓѼδ, ¡áº¡áτáѼδ⌐ »α¿ óδ»«½¡Ñ¡¿¿ Σπ¡¬µ¿¿ mount ß »«¼«Θ∞ε
- á½ú«α¿Γ¼á iget, ¿¼ÑÑΓ ßτÑΓτ¿¬ ßß佫¬ ß »«½«ª¿Γѽ∞¡δ¼ º¡áτÑ¡¿Ñ¼. èá¬
- Σπ¡¬µ¿∩ umount ß¼«ªÑΓ πíÑñ¿Γ∞ß∩ ó «ΓßπΓßΓó¿¿ á¬Γ¿ó¡δσ Σá⌐½«ó ¿ «Γτ¿-
- ΓáΓ∞ß∩ »ÑαÑñ ¬«α¡Ñ¼ Σá⌐½«ó«⌐ ß¿ßΓѼδ ? Éáßß¼«Γα¿ΓÑ ñóá ß½πτá∩:
- * Σπ¡¬µ¿∩ umount «ßó«í«ªñáÑΓ ¬«α¡Ñó«⌐ ¿¡ñÑ¬ß »« á½ú«α¿Γ¼π iput »ÑαÑñ
- »α«óÑᬫ⌐ á¬Γ¿ó¡δσ ¿¡ñѬ߫ó. (èᬠΣπ¡¬µ¿¿ óÑα¡πΓ∞ φëà ¿¡ñÑ¬ß «íαáΓ-
- ¡«, Ñß½¿ íπñπΓ «í¡áαπªÑ¡δ á¬Γ¿ó¡δÑ Σá⌐½δ ?)
- * Σπ¡¬µ¿∩ umount »α«óÑα∩ÑΓ «ΓßπΓßΓó¿Ñ á¬Γ¿ó¡δσ Σá⌐½«ó ñ« Γ«ú«, ¬á¬ «ß-
- ó«í«ñ¿Γ∞ ¬«α¡Ñó«⌐ ¿¡ñѬß, ¿ αáºαÑΦá∩ ¬«α¡Ñó«¼π ¿¡ñѬßπ «ßΓáóáΓ∞ß∩
- á¬Γ¿ó¡δ¼. (ìá߬«½∞¬« á¬Γ¿ó¡δ¼ ¼«ªÑΓ íδΓ∞ ¬«α¡Ñó«⌐ ¿¡ñÑ¬ß ?)
- 32. ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ ¡á Γ«, τΓ« »α¿ óδ»«½¡Ñ¡¿¿ ¬«¼á¡ñδ ls -ld ¬«½¿τÑßΓó«
- ßó∩ºÑ⌐ ß ¬áΓὫú«¼ ¡¿¬«úñá ¡Ñ αáó¡« 1. Å«τѼπ ?
- 33. èᬠαáí«ΓáÑΓ ¬«¼á¡ñá mkdir (ß«ºñáΓ∞ ¡«óδ⌐ ¬áΓὫú) ? (ìáó«ñ∩Θ¿⌐ ó«»-
- α«ß: ¬á¬¿Ñ ¡«¼Ñαá »« ºáóÑαΦÑ¡¿¿ óδ»«½¡Ñ¡¿∩ ¬«¼á¡ñδ ¿¼ÑεΓ ¿¡ñѬßδ ñ½∩
- Σá⌐½«ó "." ¿ ".." ?)
- *34. Å«¡∩Γ¿Ñ "ß¿¼ó«½¿τÑ߬¿Ñ ßó∩º¿" ¿¼ÑÑΓ «Γ¡«ΦÑ¡¿Ñ ¬ 󫺼«ª¡«ßΓ¿ π¬áºá¡¿∩ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ link ßó∩ºÑ⌐ ¼Ñªñπ Σá⌐½á¼¿, »α¿¡áñ½ÑªáΘ¿¼¿ ¬ αẽ¿τ¡δ¼
- Σá⌐½«óδ¼ ß¿ßΓѼá¼. æ Σá⌐½«¼ ß¿¼ó«½¿τÑ߬«⌐ ßó∩º¿ áßß«µ¿¿α«óá¡ π¬áºáΓѽ∞
- ¡«ó«ú« Γ¿»á; ß«ñÑন¼δ¼ Σá⌐½á ∩ó½∩ÑΓß∩ ¿¼∩ »πΓ¿ »«¿ß¬á Γ«ú« Σá⌐½á, ß
- ¬«Γ«αδ¼ «¡ ßó∩ºá¡. Ä»¿Φ¿ΓÑ αÑ὿ºáµ¿ε ß¿¼ó«½¿τÑ߬¿σ ßó∩ºÑ⌐.
- *35. ùΓ« »α«¿º«⌐ñÑΓ, Ñß½¿ »α«µÑßß ó맮óÑΓ Σπ¡¬µ¿ε unlink(".");
- èᬿ¼ íπñÑΓ ΓѬπΘ¿⌐ ¬áΓὫú »α«µÑßßá ? ÅαÑñ»«½áúáÑΓß∩, τΓ« »α«µÑßß «í-
- ½áñáÑΓ »αáóἿ ßπ»Ñα»«½∞º«óáΓѽ∩.
- 36. Éáºαáí«Γá⌐ΓÑ ß¿ßΓѼ¡πε Σπ¡¬µ¿ε, ¬«Γ«αá∩ πßѬáÑΓ ßπΘÑßΓóπεΘ¿⌐ Σá⌐½ ñ«
- »α«¿ºó«½∞¡δσ αẼÑα«ó, π¬áºá¡¡δσ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γá, ¿ «»¿Φ¿ΓÑ ÑÑ
- αáí«Γπ. ÉÑ὿ºπ⌐ΓÑ ß¿ßΓѼ¡πε Σπ¡¬µ¿ε, ¬«Γ«αá∩ »«ºó«½∩½á íδ »«½∞º«óáΓÑ-
- ½ε πñá½∩Γ∞ ßÑú¼Ñ¡Γ Σá⌐½á, αáß»«½«ªÑ¡¡δ⌐ ¼Ñªñπ ñóπ¼∩ áñαÑßἿ, ºáñá¡¡δ-
- ¼¿ ó ó¿ñÑ ß¼ÑΘÑ¡¿⌐, ¿ ߪ¿¼áΓ∞ Σá⌐½. ìá»¿Φ¿ΓÑ »α«úαá¼¼π, ¬«Γ«αá∩ ¡Ñ óδ-
- ºδóá½á íδ φΓ¿ Σπ¡¬µ¿¿, ¡« «í½áñá½á íδ ΓѼ¿ ªÑ Σπ¡¬µ¿«¡á½∞¡δ¼¿ 󫺼«ª-
- ¡«ßΓ∩¼¿.
- 37. Ä»¿Φ¿ΓÑ óßÑ πß½«ó¿∩, »α¿ ¬«Γ«αδσ ßτÑΓτ¿¬ ßß佫¬ ó ¿¡ñѬßÑ ¼«ªÑΓ »αÑóδ-
- ΦáΓ∞ º¡áτÑ¡¿Ñ 1.
- 38. çáΓαáú¿óá∩ ΓѼπ áíßΓαá¬Γ¡δσ «íαáΘÑ¡¿⌐ ¬ Σá⌐½«óδ¼ ß¿ßΓѼá¼, «ΓóÑΓ∞ΓÑ ¡á
- ó«»α«ß: ß½ÑñπÑΓ ½¿ Σá⌐½«ó«⌐ ß¿ßΓÑ¼Ñ ¬áªñ«ú« Γ¿»á ¿¼ÑΓ∞ ½¿τ¡πε «»Ñαᵿε
- í½«¬¿α«óá¡¿∩, óδºδóáѼπε ¿º «íΘÑ⌐ »α«úαá¼¼δ, ¿½¿ ªÑ ñ«ßΓáΓ«τ¡« «íΘÑ⌐
- «»Ñαᵿ¿ í½«¬¿α«óá¡¿∩ ?
- 136