ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ Β«Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Β» ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° (ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡ) Π½Π΅ Π·Π½Π°Π΅Ρ (Π΄Π° ΠΈ Π½Π΅Π·Π°ΡΠ΅ΠΌ Π΅ΠΉ) ΠΎ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ΅ UART ΠΈ Π΅Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ΅, ΡΡΠΎ Π·Π½Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, β ΡΡΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ fprintf() Π° Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² β ΡΡΠ½ΠΊΡΠΈΡ fgets(). ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΡΠΎΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ POSIX.
Π€Π°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΡΠ΅ΡΡΡΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ: ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°.
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ Π·Π΄Π΅ΡΡ ΡΠ΅ΡΠ²ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΎΡΠΈΡΠ΅Π»Ρ. ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΡ Π·Π΄Π΅ΡΡ ΡΠ° ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ, ΡΡΠΎ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΡΠΎΠΌ β ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, fprintf() ΠΈ fgets()) Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΎΡΠΈΡΠ΅Π»Ρ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ, Ρ ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π΄Π΅Π»ΠΎ.
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΡΠ΅ΡΡΡΡΠΎΠ²
ΠΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΊΠ»ΡΡΠΎΠΌ ΠΊ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ POSIX β ΠΌΡ Π²Π΅Π΄Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Β«ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅Β» ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΡΠΎΠΌ. Π Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΡΠΎ Β«ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ΅Β», Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΡΡΡ Π² Π±ΠΎΠ΄Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°, Π½ΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½Π° Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ lseek() ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°. Π POSIX ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, lseek() β ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ, ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π² POSIX ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, devctl(). ΠΡΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΅ΠΌΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ devctl(), ΠΎΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ lseek().
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ lseek() ΠΈ devctl() ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΡΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²Π΅ΡΡ ΡΠΏΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² (ΠΈΠ»ΠΈ FILE* stream).
ΠΡΠΎ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π½Π°Ρ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ QNX/Neutrino β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Ρ POSIX-ΡΡΠ½ΠΊΡΠΈΠΉ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² POSIX Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΎΡΠ²ΡΠ·Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡΡ ΠΎΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΌΠ΅ΡΡ Π΄Π΅Π»Π°ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠ΅ΡΡΡΡΠ°, β ΡΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠ΄ ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΌΠ΅ΡΡ Π΄Π΅Π»Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ, β ΡΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ°ΠΌΡΠ΅ ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠ΅ΡΡΡΡΠ° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡΠΎΠΉ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΎΠ±ΠΌΠ΅Π½Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΡ Β«ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΎΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½ΡΒ» ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Β«ΡΠΎΠ½ΡΡΠ΅Β». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ open() ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π² ΠΎΡΠ²Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°, ΡΡΠΎΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ! ΠΠ°Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (ΠΎΠ½ ΠΆΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π°ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ read()) ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠ·Π³Π»ΡΠ΄ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
ΠΡ ΡΠΆΠ΅ Π½Π°ΠΌΠ΅ΠΊΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ. ΠΠ½ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ POSIX.
Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Β«ΠΏΠΎΠ΄ ΠΊΠΎΠ»ΠΏΠ°ΠΊΠΎΠΌΒ» ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΅ΡΠ΅ ΠΊΠΎΠ΅-ΡΡΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ΅ΡΡΡΡΠ°? Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ (ΠΊΠΎΠ³Π΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½Ρ Π·Π° ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½)? ΠΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ?
ΠΠΎΠΈΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ, β ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ open(), ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°. (ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, fopen() β ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ fopen() Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ open()).
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ open() Π² Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (procnto).
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ ΠΏΡΡΠ΅ΠΉ. ΠΠ°Π½Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠΌΠ΅Π½ ΠΏΡΡΠ΅ΠΉ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²ΡΠ·Π°Π½Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΠ·Π»ΠΎΠ² (node descriptors), ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (process IDs), ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² (channel IDs) ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ (handles):
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ ΠΏΡΡΠ΅ΠΉ Π² QNX/Neutrino.
ΠΡΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΡΠ΅ΡΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ QNX4, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΈΠΌΡ fsys-qnx4. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (DLL), ΡΠ°ΠΊ ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ fsys-qnx4 Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ; ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎ ΠΈΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Β«Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΒ» Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ open():
fd = open("/dev/ser1", O_WRONLY);
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ open() Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ Π΅Π³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π³Π»Π°ΡΠΈΡ: Β«Π₯ΠΎΡΡ ΠΎΡΠΊΡΡΡΡ /dev/ser1. Π ΠΊΠΎΠΌΡ ΠΌΠ½Π΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ?Β»
ΠΠ΅ΡΠ²Π°Ρ ΡΡΠ°Π΄ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ.
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈΠΌΠ΅Π½ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ (Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π·Π΄Π΅ΡΡ, ΡΡΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅). ΠΠΌΡ ΠΏΡΡΠΈ Β«/dev/ser1Β» Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ, ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ: Β«ΠΠ°ΡΠ΅Π» /dev/ser1. ΠΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠ°Π½Π°Π» 1 ΠΏΡΠΎΡΠ΅ΡΡΠ° 44 Π½Π° ΡΠ·Π»Π΅ 0, ΡΠΏΡΠΎΡΠΈ Π΅Π³ΠΎ!Β»
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅: ΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅ open()!
Π€ΡΠ½ΠΊΡΠΈΡ open() ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ (PID 44) Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠ·Π»Π΅ (NID 0 ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ·Π΅Π») ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ (CHID 1), ΠΏΠΎΠΌΠ΅ΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ (handle) Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π²ΠΎΠΈΡΡΠΈΠ½Ρ Β«ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΒ» β ΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ open() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ΅ΡΡΡΡΠ° (3 ΡΡΠ°Π΄ΠΈΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅) ΠΠΎΠ³Π΄Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠ΅ΡΡΡΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΎΠ½ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°ΠΏΠΈΡΠΈ ΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΠ΅ΡΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ β Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΡΠΈΠ·Π½Π°ΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β EROFS). Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° ΡΠΌΠΎΡΡΠΈΡ Π½Π° Π·Π°ΠΏΡΠΎΡ (ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ ΡΠ°ΠΌ O_WRONLY, ΡΡΠΎ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΊΠΎΡΠ΅ΡΠ½ΠΎ) ΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ EOK (4 ΡΡΠ°Π΄ΠΈΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅).
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ _IO_CONNECT.
ΠΠ°ΡΠ΅ΠΌ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ open() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΠ΅ΡΡΡΡΠ°! ΠΡΠ»ΠΈ Π±Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠ΅ΡΡΡΡΠ° Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΠ» ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ EOK, ΠΌΡ Π±Ρ ΡΠΎΠΎΠ±ΡΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° (open() Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠ»Π° Π±Ρ -1 ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π° ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ Π² errno).
ΠΠΎΠΈΡΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π½Π°Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΡΠ΅ΡΡΡΡΠ°, ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠ°ΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ½Ρ ΠΏΠΎΠΈΡΠΊΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. ΠΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ·Π»Π° 0 (ΡΠΎ Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ·Π΅Π»), ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ° 1 ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ°Π½Π°Π»Π° 1. Π’Π°ΠΊ ΡΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π²ΡΠ΅Π³Π΄Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ ΡΡΠΈΠΏΠ»Π΅ΡΠΎΠΌ ND/PID/CHID, ΡΠ°Π²Π½ΡΠΌ 0/1/1.