β’Β Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ
read()write()lseek()β’Β ΠΠ»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»Π°Π³ΠΈ Π΄Π»Ρ
open()write()read()fsync()fdatasync()β’Β Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ
truncate()ftruncate()Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1.Β ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΠΈΡΡ
open()read(),write()close()copy2.Β Π£ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΡΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
copy-copy - -3.Β ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΊΡ ΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π»Ρ proc(5) Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ GNU/Linux. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»
fdls -l /dev/fd/proc/self/fd/dev/stdincat/dev/fd4.Β ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΊΠ° ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΠΏΠΎΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° ΠΈΠ· V7
cat.cstruct statfstat()ch04-cat.ccat file >> file5.Β (ΠΡΠΎΡΡΠΎΠ΅) ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠ² Π½Π°Π»ΠΈΡΠΈΠ΅
strerror()perror()6.Β ΠΠ°ΠΊΠΎΠ² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ '
ulimit -n7.Β ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
umaskmyumaskstrtol()umaskumask()ΠΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅
myumaskumaskumasktype umask8.Β ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
copyopen()O_SYNCtime9.Β ΠΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ Π΄Π»Ρ
ftruncate()10.Β ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
truncatetruncate <i>Π΄Π»ΠΈΠ½Π°_ΡΠ°ΠΉΠ»Π°</i>ΠΠ»Π°Π²Π° 5
ΠΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠ°Π½Π½Π°Ρ Π³Π»Π°Π²Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΏΠΎΠ΄ΡΠ΅ΠΌ ΠΏΠΎ ΠΊΡΠΈΠ²ΠΎΠΉ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠ»Π°ΡΠΎ: ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ .
Π Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΡΠΎ, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΠΊΠ°ΠΊ ΡΠΈΡΠ°ΡΡΡΡ, ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡΡΡ ΡΠ°ΠΌΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, ΠΊΠ°ΠΊΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ Π²Π»Π°Π΄Π΅Π»Π΅Ρ, Π³ΡΡΠΏΠΏΠ°, ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°.
5.1. ΠΡΠΎΡΠΌΠΎΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°
ΠΡΠ΅ Unix-ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Linux, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½. Π₯ΠΎΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π‘ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ, Π΄Π°Π²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
5.1.1. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ

Π ΠΈΡ. Copyright 1997-2004 Β© J.D. Β«IlliadΒ» Frazer. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, http://www.userfriendly.org
ΠΡ Π½Π°ΡΠ½Π΅ΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ².
Π Π°Π·Π΄Π΅Π» (partition)
ΠΠ΄ΠΈΠ½ΠΈΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈΠ±ΠΎ ΡΠ°ΡΡΡΠΌΠΈ Π΄ΠΈΡΠΊΠ°, Π»ΠΈΠ±ΠΎ ΡΠ΅Π»ΡΠΌ Π΄ΠΈΡΠΊΠΎΠΌ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ.
Π€Π°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (filesystem)
Π Π°Π·Π΄Π΅Π» (ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (metadata), ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ (Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π² ΡΠ°ΠΉΠ»Π΅). Π’Π°ΠΊΠΈΠ΅ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΠ°ΠΉΠ»Π°, ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ°, ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ Ρ.Π΄., Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π€Π°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Β«Π²Β» ΡΠ°Π·Π΄Π΅Π»Π°Ρ (ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ) ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π·Π°ΠΏΠΈΡΠΈ Π² Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ
mke2fsnewfsmkfsnewfsΠΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΡΡ GNU/Linux ΠΈ Unix ΡΠΊΡΡΠ²Π°ΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ². (ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 8.1 Β«ΠΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΒ».) ΠΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΡΠΈ, Π±Π΅Π·ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΡΠΎΠΌΡ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΡΠ°ΠΉΠ». (Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΠΎ Ρ ΠΏΠΎΡΡΠΈ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΡΠ°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ OpenVMS, ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Microsoft.)