Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠ΅ΡΡΡΡΠΎΠ². Π ΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ (Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅) ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π² Π΅Π³ΠΎ ΡΠ΅ΡΡΡΡΠ΅, Π±ΡΠ΄ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡΡΡ ΠΊ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ. ΠΠ΄Π΅Ρ Π½Π΅ Π½ΠΎΠ²Π° Π΄Π»Ρ ΠΌΠΈΡΠ° UNIX (ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
/proc/devΠ’Π΅Ρ Π½ΠΈΠΊΠ° ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠ΅ΡΡΡΡΠ° Π²Π²ΠΎΠ΄ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
procnto
int fd = open("/net/host/dev/srv", O_RDONLY);ΠΏΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ:
int coid = ConnectAttach(node, pid, chid, 0, 0);ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡΡ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΆ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΈΡΠΎΠ΄Ρ, Ρ ΠΎΡΡ ΠΌΡ ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΠΎ ΠΏΡΠΈΠ²ΡΡΠΊΠ΅ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Β«ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΒ», Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ - Β«ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΒ». ΠΠ΄Π΅ΡΡ ΠΎΡΡΠ΅ΡΠ»ΠΈΠ²ΠΎ Π²ΠΈΠ΄Π½Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½Π° Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠΈΠ°Π΄Ρ
nodepidchid/net/host/dev/srvΠΠΎΠ΄Π΅Π»Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠ΅ΡΡΡΡΠ° Π² QNX, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°, Π³ΠΈΠ±ΠΊΠ° ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½Π°, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π» Π±Ρ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ (ΠΏΡΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈ ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΠΈ):
# server -n /dev/srv
# server -n /proc/srv
# server -n /fs/srvΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΊΠ°:
# server -n /dev/srv1
# server -n /dev/srv2ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ·Π»Π΅ ΡΠ΅ΡΠΈ, Π½ΠΎ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ·Π»Π°Ρ :
# on -f host1 server -n /dev/srv1
# on -f host1 server -n /dev/srv2
# on -f host2 server -n /dev/srv1
# on -f host2 server -n /dev/srv1Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π½Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΡΠ°ΠΊ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΌΡΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π³Π΄Π΅ Π±Ρ ΠΎΠ½ΠΈ Π½ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² ΡΠ΅ΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
# client -s /dev/srv1
# client -s /net/host2/dev/srv1ΠΠΎΠ»Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°.
Π ΡΠ΅ΠΌ Π΅ΡΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΠΊ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ²?
Π ΠΊΡΠ°ΡΠΊΠΎΠΉ ΡΡ Π΅ΠΌΠ΅, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, Π²ΡΠ·ΠΎΠ²ΠΎΠΌ:
MsgSend(coid, &bufou, sizeof(bufou), &bufin, sizeof(bufin));ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΠ»Π°Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ(Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ) Π΄Π»ΠΈΠ½Ρ (
sizeof(bufou)MsgSend()ΠΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΡΠ΅ΡΡΡΡΠΎΠ², Π² ΡΠΈΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² Β«ΠΏΡΠΎΠΊΡΡΡΡΠΎΠ²ΠΎ Π»ΠΎΠΆΠ΅Β» POSIX, ΠΊΠ°ΡΡΠΈΠ½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π΄ΡΡΠ³Π°Ρ: ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ.
1.Β ΠΠΎΠΌΠ°Π½Π΄Ρ Π³ΡΡΠΏΠΏΡ
read()2.Β ΠΠΎΠΌΠ°Π½Π΄Ρ Π³ΡΡΠΏΠΏΡ
write()3.Β ΠΠΎΠΌΠ°Π½Π΄Π°
devctl()write()read()devctl()devctl()4.Β ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΡΠ΅ΡΡΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΠΌΠ΅Π½ Β«ΡΡΡΡΠΌΠΈΒ», Π½Π΅ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π²Π°ΡΠΈΠ°ΡΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π° ΠΊΠ°ΠΊ Π΅Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ΄Π΅, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π. ΠΠ°ΠΉΡΠ΅Π²Π°.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°ΠΊΠ°Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½Π°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ β ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΠΎΠ΅ POSIX ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅ΡΠ΅Ρ Π² ΡΠ΅Π±Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ.
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠ»ΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΡΠ΅ΡΡΡΡΠΎΠ² β ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π½Π°Π΄ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊΠΎΠ²Π° ΠΆΠ΅ ΠΏΠ»Π°ΡΠ° Π·Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ Β«ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎΠ³ΠΎΒ» ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°?
ΠΠ»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Β«ΡΠΊΠΎΡΠΎΡΡΠ½ΡΡ Β» Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π³ΡΡΠΏΠΏΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠ°ΠΉΠ»Ρ cli.cc, clr.ccΠΈ srv.cc), Π° ΡΡΠΎΠ±Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π½Π΅ Π²ΡΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π²ΡΠ½Π΅ΡΠ΅ΠΌ ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ( ΡΠ°ΠΉΠ» common.h).
const char VERSION[] = "vers. 1.03";
// ΠΈΠΌΡ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅
// ΠΈΠΌΠ΅Π½ Π½Π°Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅ΡΡΡΡΠ°
static const char DEVNAME[_POSIX_PATH_MAX] = "/dev/srr";