ΠΠ ΠΠΠΠ§ΠΠΠΠ
64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ Π‘ ΠΊΠ°ΠΊ ΡΠΎΡΠΌΠ°Ρ long long int ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ long long. ΠΠ½ΠΎΠ³ΠΈΠ΅, Π½ΠΎ Π½Π΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° longlong_t, Π² Π΄ΡΡΠ³ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:
typedef long long longlong_t;
ΠΠ»ΠΈΠ½Π½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ Π² XDR Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 32 Π±ΠΈΡΠ°, Π½ΠΎ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠ·ΡΠΊΠ° Π‘ Π² 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Unix ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΈ 64 Π±ΠΈΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ LP64, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π² [24, Ρ. 27]). ΠΠΌΠ΅Π½Π° ΡΠΎΡΠΌΠ°ΡΠ° XDR ΡΡΡΠ°ΡΠ΅Π»ΠΈ Π»Π΅Ρ Π½Π° Π΄Π΅ΡΡΡΡ ΠΈ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ. ΠΡΡΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΈ Π½Π°Π·ΡΠ²Π°Π»ΠΈΡΡ ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡΠ΄Ρ Π²ΡΠΎΠ΄Π΅ int8_t, int16_t ΠΈ Ρ. Π΄.
4. ΠΡΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΠΏΠΎΠ² Π±Π΅Π· Π·Π½Π°ΠΊΠ°. ΠΠ΅ΡΠ²ΡΠ΅ 4 ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ β ΠΊΠ°ΠΊ 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅.
5. Π’ΡΠΈ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠΎΡΠΎΠΉ β ΠΊΠ°ΠΊ 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅, Π° ΡΡΠ΅ΡΠΈΠΉ β ΠΊΠ°ΠΊ 128-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅.
ΠΠ ΠΠΠΠ§ΠΠΠΠ
Π§Π΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ (quadruple precision) ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² Π‘ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² long double. He Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π΅Π³ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ. ΠΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ long double, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ Ρ double. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° quadruple, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ
typedef long double quadruple;
Π Solaris 2.6, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΠΎΠΊΡ
%#include <floatingpoint.h>
Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ RPC, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠΠ½Π°ΠΊ ΠΏΡΠΎΡΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π΄ #include Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ rpcgen ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΎΡΡΠ°ΡΠΎΠΊ ΡΡΡΠΎΠΊΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ».
6. Π’ΠΈΠΏ boolean ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΡΠ΅Π»ΠΎΠΌΡ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ RPC ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ TRUE ΡΠ°Π²Π½ΠΎΠΉ 1, a FALSE ΡΠ°Π²Π½ΠΎΠΉ 0.
7. ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ (enumeration) ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΡΠ΅Π»ΠΎΠΌΡ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ enum Π² Π‘. rpcgen ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
8. Π‘ΠΊΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΊΠ°ΠΊ 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ.
9. Π‘ΠΊΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°ΠΌΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ RPC) ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π»ΠΈΠ½Ρ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ·ΠΎΠ². ΠΡΠΈ ΠΏΡΠΈΠ΅ΠΌΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΡΡΠ½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΡΡΠΎ.
10. Π‘ΡΡΠΎΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ASCII-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π ΠΏΠ°ΠΌΡΡΠΈ ΡΡΡΠΎΠΊΠ° Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠ·ΡΠΊΠ° Π‘, Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌΠ°Ρ Π½ΡΠ»Π΅ΠΌ, Π½ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π½Π΅ΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (Π±Π΅Π· Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π½ΡΠ»Ρ). ΠΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° strlen. ΠΡΠΈ ΠΏΡΠΈΠ΅ΠΌΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΡΡΠΎΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π‘, Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌΡΡ Π½ΡΠ»Π΅ΠΌ.
11. ΠΠ°ΡΡΠΈΠ² ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
12. ΠΠ°ΡΡΠΈΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΡΠ΅Π½ΠΎ. ΠΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, Π½Π΅ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ Π»ΠΈ ΡΠ΅Π°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ m.
13. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»Π΅ΠΉ. rpcgen ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ (typedef).
14. Π Π°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½ΡΠ° ΠΈ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ (Π²Π΅ΡΠ²Π΅ΠΉ), Π·Π°Π²ΠΈΡΡΡΠΈΡ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½ΡΠ°. Π ΡΠ°Π±Π». 16.2 ΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΡΡΠΎ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΠΏΠ° int, Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ unsigned int, ΠΈ enum, ΠΈ bool (Π²ΡΠ΅ ΡΡΠΈ ΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΡΠ΅Π»ΡΠ΅). ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½ΡΠ°, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΅ΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ. Π Π²Π΅ΡΠ²ΠΈ default ΡΠ°ΡΡΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏ void, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π²ΡΠ»Π΅Π΄ Π·Π° Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½ΡΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΈΠΆΠ΅ ΠΌΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
15. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° 16.24. ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ XDR Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² ΡΠ·ΡΠΊΠ΅ Π‘, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
ΠΠ° ΡΠΈΡ. 16.3 ΡΠ²Π΅Π΄Π΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Π² XDR.
Π ΠΈΡ. 16.3. ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Π² XDR
ΠΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ XDR Π±Π΅Π· RPC
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ XDR Π±Π΅Π· RPC. ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ XDR Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 16.11 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ΅ΠΊΡΡ ΡΠ°ΠΉΠ»Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ data .Ρ , ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ XDR, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ RPC.
ΠΠ ΠΠΠΠ§ΠΠΠΠ
Π‘ΡΡΡΠΈΠΊΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° (.Ρ ) ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½Π° Β«ΡΠ°ΠΉΠ» ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ XDRΒ». Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ RPC ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ ΡΠ·ΡΠΊ RPC (RPCL) ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ XDR Π² ΡΠ°ΡΡΠΈ, ΠΎΡΠ½ΠΎΡΡΡΠ΅ΠΉΡΡ ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π RPCL Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ.
ΠΠΈΡΡΠΈΠ½Π³ 16.11. Π€Π°ΠΉΠ» ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ XDR//sunrpc/xdr1/data.x
1 enum result_t {
2 RESULT_INT = 1, RESULT_DOUBLE = 2
3 };
4 union union_arg switch (result_t result) {
5 case RESULT_INT:
6 int intval;
7 case RESULT_DOUBLE:
8 double doubleval;
9 default:
10 void;
11 };
12 struct data {
13 short short_arg;
14 long long_arg;
15 string vstring_arg<128>; /* ΡΡΡΠΎΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ */
16 opaque fopaque_arg[3]; /* ΡΠΊΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ */
17 opaque vopaque_arg<>; /* ΡΠΊΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ */
18 short fshort_arg[4]; /* ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ */
19 long vlong_arg<>; /* ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ */
20 union_arg uarg;
21 };
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ1-11 ΠΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΠΉ ΡΠΈΠΏ Ρ Π΄Π²ΡΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½ΡΠ°. ΠΡΠ»ΠΈ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½Ρ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ RESULT_INT, ΠΏΠΎΡΠ»Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΡΠ»ΠΈ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½Ρ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ RESULT_DOUBLE, Π·Π° Π½ΠΈΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ»Π΅ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°Π½ΡΠ° Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½ΠΈΡΠ΅Π³ΠΎ.
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ12-21 ΠΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ XDR.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡ RPC, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° rpcgen Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°Π³Π»ΡΡΠΊΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π·Π°Π³Π»ΡΡΠΊΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» data.h ΠΈ ΡΠ°ΠΉΠ» data_xdr.Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ XDR, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ data.Ρ .
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 16.12 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΠΉΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°Π±ΠΎΡΡ rpcgen Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» data.h. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ (ΡΠ°Π±Π». 16.2).
ΠΠΈΡΡΠΈΠ½Π³ 16.12. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» data.h, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ rpcgen ΠΈΠ· ΡΠ°ΠΉΠ»Π° data.x//sunrpc/xdr1/data.h
1 /*
2 * Please do not edit this file. It was generated using rpcgen.
3 */
4 #ifndef _DATA_H_RPCGEN
5 #define _DATA_H_RPCGEN
6 #include <rpc/rpc.h>
7 enum result_t {
8 RESULT_INT = 1,
9 RESULT_DOUBLE = 2
10 };
11 typedef enum result_t result_t;
12 struct union_arg {
13 result_t result;
14 union {
15 int intVal;
16 double doubleval;
17 } union_arg_u;
18 };
19 typedef struct union_arg union_arg;
20 struct data {
21 short short_arg;
22 long long_arg;
23 char *vstring_arg;
24 char fopaque_arg[3];
25 struct {
26 u_int vopaque_arg_len;
27 char *vopaque_arg_val;
28 } vopaque_arg;
29 short fshort_arg[4];
30 struct {
31 u_int vlong_arg_len;
32 long *vlong_arg_val;
33 } vlong_arg;
34 union_arg uarg;
35 };
36 typedef struct data data:
37 /* 4the xdr functions */
38 extern bool_t xdr_result_t(XDR *, result_t*);
39 extern bool_t xdr_union_arg(XDR *, union_arg*);
40 extern bool_t xdr_data(XDR *, data*);
41 #endif /* !_DATA_H_RPCGEN */
Π ΡΠ°ΠΉΠ»Π΅ data_xdr.Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ xdr_data, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ data, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ. Π‘ΡΡΡΠΈΠΊΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ _data ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ Π½Π°ΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° 16.11. ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ, Π±ΡΠ΄Π΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ write.Ρ. ΠΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠΌ ΡΡΡΡΠΊΡΡΡΡ data, Π²ΡΠ·ΡΠ²Π°ΡΡ xdr_data Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ΠΉ Π² ΡΠΎΡΠΌΠ°Ρ XDR ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π°.