Π€ΡΠ½ΠΊΡΠΈΡ rpl_utime() (ΡΡΡΠΎΠΊΠΈ 75β82) ΡΠ²Π»ΡΠ΅ΡΡΡ Β«Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π»Π΅ΠΌ utime()Β». ΠΡΠ»ΠΈ Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π΅ ΡΠ°Π²Π΅Π½ NULL, ΠΎΠ½Π° Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π°ΡΡΠΎΡΡΡΡ utime(). Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½Π° Π²ΡΠ·ΡΠ²Π°Π΅Ρ utime_null().
5.5.4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ fchown() ΠΈ fchmod() Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
Π ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Unix Π±ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ chown() ΠΈ chmod(). ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π° ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠΎΡΡΡΠ·Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ΅Π³ΠΎ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ ΡΠ°ΠΉΠ»Π°, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠΎΡΡΡΠ·Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ stat() Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°ΠΉΠ»Π΅. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈΡΡ, ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° fstat() ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ (ΡΡΠ°Π²Π½ΠΈΠ² ΠΏΠΎΠ»Ρ st_dev ΠΈ st_ino ΡΡΡΡΠΊΡΡΡ struct stat Β«Π΄ΠΎΒ» ΠΈ Β«ΠΏΠΎΡΠ»Π΅Β»).
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅, Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ fchown() ΠΈΠ»ΠΈ fchmod().
ΠΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ lchown(), ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅;[63] Π² ΡΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Unix ΠΈΡ Π½Π΅ Π±ΡΠ»ΠΎ, Ρ ΠΎΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ POSIX ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΎΠ½ΠΈ Π΅ΡΡΡ.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ futime() ΠΈΠ»ΠΈ lutime() Π½Π΅Ρ. Π ΡΠ»ΡΡΠ°Π΅ futime() ΡΡΠΎ (ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ) ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΡΠΌΠ΅ΡΠΊΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ, ΡΡΠΎ Π΄Π»Ρ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°, lutime() ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΡΠΌΠ΅ΡΠΊΠΈ Π½Π΅ΡΠΌΠ΅ΡΡΠ½Ρ Π΄Π»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΠ»ΠΎΠΊ.
5.6. Π Π΅Π·ΡΠΌΠ΅
β’ ΠΠ΅ΡΠ°ΡΡ ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΠΊΠ°ΠΊ ΠΎΠ½Π° Π²ΠΈΠ΄ΠΈΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ, ΠΊΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² /. ΠΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½ΡΡΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ Ρ ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ (ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅), Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ .
β’ ΠΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ. ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΠ°Ρ (ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΈΠΌΡ). ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ (ΠΏΡΡΠΌΠΎΠΉ) ΡΡΡΠ»ΠΊΠΎΠΉ, Π° ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ»ΠΎΠΊ. ΠΡΡΠΌΡΠ΅ ΡΡΡΠ»ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΈΡΡ ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Π½Π° ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, Π° Π½Π΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
β’ ΠΡΡΠΌΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ link(), ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ symlink(), ΡΡΡΠ»ΠΊΠΈ ΡΠ΄Π°Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ unlink(), Π° ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ (Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³) Ρ ΠΏΠΎΠΌΠΎΡΡΡ rename(). ΠΠ»ΠΎΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΡΠ΅ΡΡΠΈΠΊ ΡΡΡΠ»ΠΎΠΊ Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ Π½ΡΠ»Ρ ΠΈ Π½Π΅ Π·Π°ΠΊΡΠΎΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΡΠΊΡΡΡΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°.
β’ ΠΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ mkdir(), Π° ΡΠ΄Π°Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ rmdir(); ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ (Π½Π΅ ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ, ΠΊΡΠΎΠΌΠ΅ '.' ΠΈ '..'). GNU/Linux Π²Π΅ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ISO Π‘ remove() Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ unlink() ΠΈΠ»ΠΈ rmdir().
β’ ΠΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ opendir(), readdir(), rewinddir() ΠΈ closedir(). struct dirent ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π² ΡΠ»Π΅Π½Π΅ d_name ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°. Π€ΡΠ½ΠΊΡΠΈΠΈ BSD telldir() ΠΈ seekdir() Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠΈΡΠΎΠΊΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡ, ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ.
β’ ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² stat(), ΡΡΡΡΠΊΡΡΡΠ° struct stat ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π΅ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°. (Π ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ ΠΈΠ»ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠ»ΠΎΠΊ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠΌΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ.)
β’ ΠΠ°ΠΊΡΠΎΡ S_ISxxx() Π² <sys/stat.h> Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ ΡΠ°ΠΉΠ»Π°. Π€ΡΠ½ΠΊΡΠΈΠΈ major() ΠΈ minor() ΠΈΠ· <sys/sysmacros.h> Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ dev_t, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ Π±Π»ΠΎΡΠ½ΡΠ΅ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
β’ Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π² lstat(), Π° ΠΏΠΎΠ»Π΅ st_size ΡΡΡΡΠΊΡΡΡΡ struct stat Π΄Π»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ Π±Π°ΠΉΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ ΡΠΈΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ readlink(). ΠΡΠΆΠ½ΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ° Π±ΡΠ» ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΈ ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π½ΡΠ»Π΅Π²ΡΠΌ Π±Π°ΠΉΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΠΎΠΊΠΈ Π‘.
β’ ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ chown() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΌΠ΅Π½Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΠΈ Π³ΡΡΠΏΠΏΡ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ chmod() Π΄Π»Ρ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Ρ, a utime() Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 'const char *fmt_mode(mode_t mode)'. ΠΠ²ΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ mode_t, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ· ΠΏΠΎΠ»Ρ st_mode ΡΡΡΡΠΊΡΡΡΡ struct stat; Ρ.Π΅. ΠΎΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ°ΠΊ Π±ΠΈΡΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°, ΡΠ°ΠΊ ΠΈ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»Π°.
ΠΡΠ²ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΡΡΠΎΠΊΡ Π² 10 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΏΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° 'ls -l'. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΈΠΏ ΡΠ°ΠΉΠ»Π°, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π΅Π²ΡΡΡ β ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠΎΠ³Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π±ΠΈΡΡ S_ISUID ΠΈ S_IXUSR, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ s Π²ΠΌΠ΅ΡΡΠΎ x; Π΅ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π»ΠΈΡΡ Π±ΠΈΡ I_ISUID, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ S. Π’ΠΎ ΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π±ΠΈΡΠ°ΠΌ S_ISGID ΠΈ S_IXGRP. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΎΠ±Π° Π±ΠΈΡΠ° S_ISVTX ΠΈ S_IXOTH, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ t; Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ S_ISVTX ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ T.
ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ (static) Π±ΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
2. ΠΠΎΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ch05-catdir.c, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π²ΡΠ·ΡΠ²Π°Π»Π° stat() Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ²Π΅Π΄ΠΈΡΠ΅ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° fmt_mode(), ΡΠΈΡΠ»ΠΎ ΡΡΡΠ»ΠΎΠΊ ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°.
3. ΠΠΎΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ch05-catdir.c ΡΠ°ΠΊ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
4. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΊΡΡ ΠΎΠΏΡΠΈΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π²Ρ ΠΎΠ΄ΠΈΡ Π² Π½Π΅Π³ΠΎ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ (ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ ) ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ.
5. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ GNU/Linux, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ch05-trymkdir (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 5.2 Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²Β») Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌΠΈ Π½Π°ΠΌΠΈ.
6. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ mkdir. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ²ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ mkdir(1) ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ Π²ΡΠ΅ Π΅Π΅ ΠΎΠΏΡΠΈΠΈ.
7. Π ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, /, ΠΊΠ°ΠΊ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ°ΠΊ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄Π»Ρ '.' ΠΈ '..' ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ pwd.
ΠΠ½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°ΠΉΡΠΈ ΠΈΠΌΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΏΡΠΎΡΠΈΡΠ°Π² ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ, Π»Π΅Π³ΠΊΠΎ. ΠΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ pwd Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π²Π½ΠΈΠ·?
8. ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ pwd, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π² ΡΠ΅ΠΊΡΡΡΠΈΡ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π΅Π΅ ΡΠ½ΠΎΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π² ΠΈΡΠ΅ΡΠ°ΡΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π΅Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠΈ. Π§ΡΠΎ Π»ΡΡΡΠ΅? (ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΡΠ΅Π½Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ².)
9. Π’ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ rpl_utime() (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 5.5.3.1 Β«ΠΠΎΠ΄Π΄Π΅Π»ΠΊΠ° utime(file, NULL)Β»). ΠΠ°ΠΊΠΎΠΉ ΡΠ΅ΡΡΡΡ Π½Π΅ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ if Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ? (Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ΠΠΆΠ΅ΡΡΡ ΠΠΎΠ»ΡΠ΅ (Geoff Collyer).)
10. (Π’ΡΡΠ΄Π½ΠΎΠ΅) ΠΡΠΎΡΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π»Ρ chmod(1). ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, ΡΠ΄Π°Π»ΡΡΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°, Π³ΡΡΠΏΠΏΡ, Π΄ΡΡΠ³ΠΈΡ ΠΈ Β«Π²ΡΠ΅Ρ Β».
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ chmod, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ, chmod() β ΠΈΠ»ΠΈ open() ΠΈ fchmod() β ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ?
ΠΠ»Π°Π²Π° 6
ΠΠ±ΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ β ΡΠ°ΡΡΡ 1
Π Π³Π»Π°Π²Π΅ 5 Β«ΠΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Β» ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ struct stat ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π΅ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ; ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.