ΠΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΎΡΡΠΎΡΡ. ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
write (1, "ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉ, ΠΠΈΡ!\n", 16);
printf("ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉ, ΠΠΈΡ!\n");
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ write(2), Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ β Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ printf(3S). ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΡΠΌ, ΠΎΡΠΌΠ΅ΡΠΈΠΌ Π΅ΡΠ΅ ΡΡΠ΄ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ°Π²Π΅Π½ 1, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΡΠΌ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅, Ρ.ΠΊ. write(2) Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ ΡΠΎΡΠΌΠ°ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Π°, ΡΡΠ°ΠΊΡΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡΠΎΠ². Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ wite(2), printf(3S) ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΡΡΠΎΠΊΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΡ ΡΡ Π½ΡΠ»Π΅ΠΌ. Π€ΡΠ½ΠΊΡΠΈΡ printf(3S) ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡ Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² read(2) ΠΈ write(2). ΠΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΡΡΠ΅ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ Π½ΠΈΡ .
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΈ ΡΠΈΠΏΠ° Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ:
β‘ ΠΠΎΠ»Π½Π°Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ Π±ΡΡΠ΅Ρ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ Π΄Π»Ρ Π΄ΠΈΡΠΊΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π±ΡΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ. ΠΡΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ malloc(3C) ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΏΠΎΡΠΎΠΊΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ read(2) ΠΈΠ»ΠΈ write(2). ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ getc(3S), gets(3S), putc(3S), puts(3S) ΠΈ Ρ.Π΄. Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, Π° Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΈΠ· Π±ΡΡΠ΅ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π±ΡΡΠ΅ΡΠ° ΠΎΡΠΈΡΠ°Π΅ΡΡΡ (Ρ.Π΅. Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π½Π° Π΄ΠΈΡΠΊΠ΅) Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π»ΠΈΠ±ΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ fflush(3S).
β‘ ΠΠΎΡΡΡΠΎΡΠ½Π°Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ (Ρ.Π΅. ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ read(2) ΠΈΠ»ΠΈ write(2)) ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ (ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΊΠ°ΡΠ΅ΡΠΊΠΈ). Π’Π°ΠΊΠΎΠΉ ΡΠΈΠΏ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π°.
β‘ ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ . ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ .
Π₯Π°ΡΠ°ΠΊΡΠ΅Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
#include <stdio.h>
void setbuf(FILE *stream, char *buf);
int setvbuf(FILE *stream, char *buf, int type, size_t size);
Π€ΡΠ½ΠΊΡΠΈΡ setbuf(3S) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° stream. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ buf Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π±ΡΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ BUFSIZ, Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°Π²Π½ΠΎ NULL.
Π€ΡΠ½ΠΊΡΠΈΡ setvbuf(3S) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ½ΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Ρ, ΠΊΠ°ΠΊΠΎΠΉ Π΅Π΅ ΡΠΈΠΏ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ type, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
_IOFBF ΠΠΎΠ»Π½Π°Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ _IOLBF ΠΠΎΡΡΡΠΎΡΠ½Π°Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ _IONBF ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈΠ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎΠΉ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ size ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ°, Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ buf.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ FILE, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Π½Π° ΡΠΈΡ. 2.9, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π±ΡΡΠ΅Ρ _base, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠΈ _ptr, ΡΠΈΡΠ»ΠΎ Π±Π°ΠΉΡ Π² Π±ΡΡΠ΅ΡΠ΅ _cnt, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ _file, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½ Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π°Π³ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° _flag. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΡΡΠ΅ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π²Π΅Π½ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Ρ st_blksize ΡΡΡΡΠΊΡΡΡΡ stat, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ stat(2), ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΉ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ "ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π°" ΡΡΠΎΠΉ Π³Π»Π°Π²Ρ. ΠΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ², Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ BUFSIZ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ <stdio.h>.
Π ΠΈΡ. 2.9. Π‘ΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°
Π‘Π²ΡΠ·ΠΈ
Π ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ UNIX Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΈΡΠ»ΠΎ ΡΠ²ΡΠ·Π΅ΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΉΠ»Ρ /etc/init.d/lp (ΠΈΠ»ΠΈ /etc/lp), /etc/rc0.d/K201p, /etc/rc2.d/K201p ΠΈ /etc/rc2.d/S801p ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, Π½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠ» (ΡΠΎΡΠ½Π΅Π΅, ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π°) ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΡΠ»ΠΎ ΡΠ²ΡΠ·Π΅ΠΉ ΡΠ°ΠΉΠ»Π° ΡΠ°Π²Π½ΠΎ 4. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»Π° ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ, ΡΠΈΡΠ»ΠΎ ΡΠ²ΡΠ·Π΅ΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ. ΠΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ Π½ΡΠ»Ρ β Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ. Π’Π°ΠΊΠΎΠΉ ΡΠΈΠΏ ΡΠ²ΡΠ·ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΆΠ΅ΡΡΠΊΠΎΠΉ.
ΠΠ΅ΡΡΠΊΠ°Ρ ΡΠ²ΡΠ·Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° link(2):
#include <unistd.h>
int link(const char *existing, const char *new);
ΠΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π° Π½ΠΎΠ²Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ new ΠΈ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ inode ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π° existing. Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ ΡΠ²ΡΠ·Π΅ΠΉ. ΠΡΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ln(1), ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½Π°Ρ Π² Π³Π»Π°Π²Π΅ 1.
ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΆΠ΅ΡΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² unlink(2):
#include <unistd.h>
int unlink(const char *path);
ΠΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° rm(1) ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π°. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π°. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ², ΡΠ²Π½ΠΎ ΡΠ΄Π°Π»ΡΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π°, ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ΡΡΠΊΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ, ΡΠ°ΡΡΡ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠΎΡΠ΅ΡΡΡ, Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌΡ ΡΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅).
Π ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΆΠ΅ΡΡΠΊΠΈΠΌ ΡΠ²ΡΠ·ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅, ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ Π² Π³Π»Π°Π²Π΅ ΡΠ²Π»ΡΡΡΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»Π°, Π² UNIX ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ, Π°Π΄ΡΠ΅ΡΡΡΡΠΈΠ΅ Π½Π΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π°, Π° Π΅Π³ΠΎ ΠΈΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΡΡ, ΡΠΎ Π² Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ Π°Π΄ΡΠ΅ΡΡΡΡΡΡ.
Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ²ΡΠ·Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΠΉΠ» ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² symlink(2) ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ. ΠΡΠΈΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ, ΠΊΡΡΠ°ΡΠΈ, ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ln -s.
#include <unistd.h>
int symlink (const char *name, const char *synmame);
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π»Π΅Π²ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ name ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ symname. ΠΡΠΈ ΡΡΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΡ open(2), ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ». Π’Π°ΠΊΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ. ΠΠ΅ Π²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² unlink(2), ΡΠ΄Π°Π»ΡΡΡΠΈΠΉ Π·Π°ΠΏΠΈΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ°ΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΡΡ ΡΠ²ΡΠ·Ρ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΌΡ Π½Π΅ ΠΈΠΌΠ΅Π»ΠΈ Π±Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π΅. Π ΡΠ°Π±Π». 2.11 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ²ΡΠ·ΡΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ.
Π’Π°Π±Π»ΠΈΡΠ° 2.11. ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ access(2) + chdir(2) + chmod(2) + chown(2) + lchown(2) + creat(2) + exec(2) + link(2) + mkdir(2) + mknod(2) + open(2) + readlink(2) + rename(2) + stat(2) + lstat(2) + unlink(2) +ΠΠ»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° β ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² readlink(2):