Π€ΡΠ½ΠΊΡΠΈΡ
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_IS<i>xxx</i>()
Π²
<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
.