Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΈΠ΄Π΅Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ°ΠΊ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠΊΡΡΠΆΠ°ΡΡΠΈΠΌ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ GDB, ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ GNU, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΠ²Π΅ΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. (Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ GDB ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΠΈΠΌΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ). ΠΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°.
1.4.5. ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ Β«GNU Coding StandardsΒ»
GNU Coding Standards ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΎΡΡΠΈΠΌ Π΄Π»Ρ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ GNU, ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ GNU ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΡΡΠ΅. ΠΡΠΈΠ½ΡΠΈΠΏΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ β Π²ΠΎΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ GNU ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ Unix.
1.5. ΠΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ
ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ Π‘Π²ΡΡΠΎΠ³ΠΎ ΠΡΠ°Π°Π»Ρ; Π²ΡΠ΅Π³Π΄Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠΌ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ, Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΠΌ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅Π»Π΅Π³ΠΊΠΈΠΌ. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. GNU Coding Standards ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ . ΠΠΎ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Ρ. ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π° Π²ΡΡΠΎΠΊΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½ΡΡ . ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°:
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠΉΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ
Π₯ΠΎΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, ΠΎΠΊΡΠΏΠ°Π΅ΡΡΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΡ ISO 1990 ΠΈ 1999 Π³Π³. Π΄Π»Ρ Π‘ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡ 2003 Π³. Π΄Π»Ρ Π‘++, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Linux ΡΠΎΠ·Π΄Π°Π½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΡΠΈΡ Π΄Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ².
Π ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ POSIX Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Ρ ΠΎΡΡ ΠΎΠ½ ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ POSIX Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΠ°Π½ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΠΌΠΈΠΌΠΎ GNU/Linux. ΠΡΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΈΡΠ°Π±Π΅Π»Π΅Π½; ΠΎΠ½ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΠ΅Ρ Π² ΡΠ΅Π±Π΅ Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠΈΡ ΠΎΠΏΡΡΠ° ΠΈ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ.
ΠΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π»ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
ΠΡΠ»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½ΡΠΆΠ½ΡΡ Π²Π°ΠΌ ΡΠ°Π±ΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅. ΠΠ»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Autoconf, ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. (ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ memmove(), ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΠΌΡ ΠΈΠ»ΠΈ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ GLIBC).
ΠΠ·ΠΎΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ Π·Π° Π½ΠΎΠ²ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ
ΠΠ½ΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π° ΠΎΠ΄Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π½ΠΎ Π½Π΅Π»ΡΠ·Ρ Π½Π° Π΄ΡΡΠ³ΠΈΡ . (ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°ΠΌΠ° ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, Π²ΠΌΠ΅ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ.) Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ Π½Π΅ Π½ΡΠΆΠ΅Π½, Π½ΠΎ ΠΏΡΠΎΠ΄Π΅Π»ΡΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΡΠΎΠΌ Π½ΡΠΆΠ΄Π°ΡΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Autoconf
ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ #ifdef. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ Π² Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ #ifdef, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Autoconf.
1.6. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠ°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
1. The Π‘ Programming Language, 2nd edition, by Brian W. Kernighan and Dennis M. Ritchie Prentice-Hall, Englewood Cliffs, New Jersey, USA, 1989. ISBN: 0-13-110370-9[25].
ΠΡΠΎ Β«Π±ΠΈΠ±Π»ΠΈΡΒ» Π‘, ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π‘ 1990 Π³. ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΆΠ°ΡΠ°Ρ ΠΊΠ½ΠΈΠ³Π°, Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΠΎΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΡΡΠ°Π½ΠΈΡ. ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π°; ΡΡΠΎ ΡΡΠΎΠΈΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΡΡ ΡΡΠΈΠ»ΠΈΠΉ.
2. Π‘, A Reference Manual. 5th edition, by Samuel P. Harbison III and Guy L. Steele, Ji. Prentice-Hall, Upper Saddle River, New Jersey, USA, 2002. ISBN: 0-13-089592-X.
ΠΡΠΎ ΡΠΎΠΆΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠ½ΠΈΠ³Π°. ΠΠ½Π° ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π‘, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ 1990 ΠΈ 1999 Π³Π³. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°, ΠΎΠ½Π° ΡΠ»ΡΠΆΠΈΡ ΡΠ΅Π½Π½ΡΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. ΠΠ½Π° ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΠ΅ΡΠ½ΠΈΠ³Π°Π½Π° ΠΈ Π ΠΈΡΠΈ.
3. Notes on Programming in Π‘, by Rob Pike, February 21,1989 ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ΅ΡΠ΅Π· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ². ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡΠΌ ΠΌΠ΅ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ http://www.lysator.liu.se/c/pikestyle.html. (ΠΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠ°ΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ°ΠΌ ΠΆΠ΅ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ²Π΅Π½Ρ Π²ΡΡΠ΅: http://www.lysator.liu.se/Ρ/.) Π ΠΎΠ± ΠΠ°ΠΉΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Π» Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΡΠ΅Π½ΡΡΠ΅ Bell Labs, Π³Π΄Π΅ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Π‘ ΠΈ Unix, ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ» ΡΠ°ΠΌ ΠΈΠ·ΡΡΠΊΠ°Π½ΠΈΡ. ΠΠ³ΠΎ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅ΡΠ½ΠΈΠΉ ΠΎΠΏΡΡ Π² Β«ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡ ΡΡΠ½ΠΎΡΡΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈΒ», ΡΡΠΎ ΡΡΠΎΠΈΡ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ.
4. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° http://www.chris-lott.org/resources/cstyle/. ΠΡΠΎΡ ΡΠ°ΠΉΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π·Π°ΠΌΠ΅ΡΠΊΠΈ Π ΠΎΠ±Π° ΠΠ°ΠΉΠΊΠ° ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠ΅ΠΉ ΠΠ΅Π½ΡΠΈ Π‘ΠΏΠ΅Π½ΡΠ΅ΡΠ° (Henry Spencer). ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π²ΡΡΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Β«Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΡΡΠΈΠ»Ρ Π‘ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ» (Recommended Π‘ Style and Coding Standards), ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ°ΠΉΡΠ΅ Bell Labs Indian Hill.
1.7. Π Π΅Π·ΡΠΌΠ΅
β’ Β«Π€Π°ΠΉΠ»Ρ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡΒ» ΡΡΠΌΠΌΠΈΡΡΡΡ ΠΌΠΈΡΠΎΠ²ΠΎΠ·Π·ΡΠ΅Π½ΠΈΠ΅ Linux/Unix. Π’ΡΠ°ΠΊΡΠΎΠ²ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±Π°ΠΉΡΠΎΠ², Π° ΡΡΡΡΠΎΠΉΡΡΠ² ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π²Π²ΠΎΠ΄Π°, Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΡΠ½ΠΈΡΠΈΡΠΈΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ. ΠΠΎΠ΄Π΅Π»Ρ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠΎΡΡΠ°, Π½ΠΎ Π³ΠΈΠ±ΠΊΠ°, ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠ° ΠΊΠ°ΠΊ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ, ΡΠ°ΠΊ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ.
β’ ΠΡΠΎΡΠ΅ΡΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π³ΡΡΠΏΠΏΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
β’ ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ Π‘ ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΌ Π‘ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ². Π₯ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π½Π° Π‘ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ².
β’ GNU Coding Standards ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ GNU. ΠΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ, ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠΈΠ½ΡΠΈΠΏ Β«Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉΒ» ΡΠ²Π»ΡΠ΅ΡΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌ ΠΈΠ· Π½ΠΈΡ . ΠΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ.
β’ ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ, Π½ΠΎ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅ Π½ΡΠΆΠ΅Π½ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΠΎΠΏΡΡ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. ΠΡΠΎΡΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ ΡΡΠ°ΡΡΡ Π ΠΈΡΠ°ΡΠ΄Π° Π. Π‘ΡΠΎΠ»ΠΌΠ΅Π½Π° Β«ΠΡΠΎΠ΅ΠΊΡ GNUΒ» (Richard M. Stallman, Β«The GNU ProjectΒ»)[26], ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π² Π°Π²Π³ΡΡΡΠ΅ 1998 Π³.
ΠΠ»Π°Π²Π° 2
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΎΠΏΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠ²ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΎΠΏΡΠΈΠΉ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ°Π½Π½Π°Ρ Π³Π»Π°Π²Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π‘ (ΠΈ Π‘++) ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΠΎΠΏΡΠΈΠΉ ΠΈ Π±ΡΠΎΡΠ°Π΅Ρ Π²Π·Π³Π»ΡΠ΄ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
2.1. Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠΈΡΠΌ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌ
Π£ ΡΠ»ΠΎΠ²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΅ΡΡΡ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Β«Π²ΡΠ΅ 'ΡΠ»ΠΎΠ²Π°' Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅Β». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
$ ls main.Ρ opts.Ρ process.Ρ
ΠΠ΄Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π» ΡΠ΅ΡΡΡΠ΅ Β«ΡΠ»ΠΎΠ²Π°Β». ΠΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΠ»ΠΎΠ²Π° ΡΠ΄Π΅Π»Π°Π½Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²[27].
ΠΡΠΎΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅: Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Unix ΠΎΡΠ΄Π΅Π»ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ (ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ TAB). ΠΠ°Π²ΡΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ:
$ echo here are lots of spaces
here are lots of spaces /* ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° Β«ΡΡΠ΅Π΄Π°Π΅ΡΒ» ΠΏΡΠΎΠ±Π΅Π»Ρ */
$ echo "here are lots of spaces"
here are lots of spaces /* ΠΡΠΎΠ±Π΅Π»Ρ ΠΎΡΡΠ°Π»ΠΈΡΡ */
ΠΠ°Π²ΡΡΠΊΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ; echo Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΈΠ΄ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²ΡΡΠΊΠΈ. (Π ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ; ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π‘.)
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π΄Π°Π»Π΅Π΅ Π½Π° ΠΎΠΏΡΠΈΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π΄Π²ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π±ΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°ΠΌΠΈ: ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ls ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡ Π΄Π»Ρ echo.
ΠΠΏΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ. ΠΠΏΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎ ΡΡΠ°ΡΠΎΠΌΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ (ΠΏΠΎΡΡΠΈ) Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ, ΠΎΠΏΡΠΈΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠ΅ΡΡΠΎΡΠΊΠΈ (Ρ.Π΅. Π΄Π΅ΡΠΈΡΠ°, Π·Π½Π°ΡΠΊΠ° ΠΌΠΈΠ½ΡΡ), ΠΈ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ. ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΎΠΏΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΈ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²-ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΡΠΈΡ -f ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ fgrep ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠΎΠΊ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°Β». Π‘ΠΌ. ΡΠΈΡ 2.1.