143
ΠΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Autoconf ΠΈ Automake. Autoconf ΠΈ Automake ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ, Π΄Π°ΡΡΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΡΡΠ³Π° Unix-ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
144
Π₯ΠΎΡΡ Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΡ ΡΠ°ΡΡΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠΎΠ², ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ Π½Π°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠΌΡΡΠ»Π΅, ΠΊΠ°ΠΊ Π² Π―ΠΏΠΎΠ½ΠΈΠΈ Π΄ΠΎ ΠΡΠΎΡΠΎΠΉ ΠΌΠΈΡΠΎΠ²ΠΎΠΉ Π²ΠΎΠΉΠ½Ρ ΠΈΠ»ΠΈ Π² Π΄ΠΎΠΊΠΎΠΌΠΌΡΠ½ΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΠΈΡΠ°Π΅ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
145
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ GNU gettext. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΠ΅ΠΌΡΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π° Π½Π΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ° β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
146
ΠΡΠΎΡ ΠΌΠ°ΠΊΡΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ configure, Π»ΠΈΠ±ΠΎ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅, Π»ΠΈΠ±ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° configure ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Autoconf ΠΈ Automake β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
147
Pig β ΡΠ²ΠΈΠ½ΡΡ, ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎΠΊ (Π°Π½Π³Π».) β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅ΡΠ΅Π².
148
ΠΡ ΡΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΡΡΠ°ΡΠΈΠ»ΠΈ 30 ΠΈΠ»ΠΈ 45 ΠΌΠΈΠ½ΡΡ, ΠΏΡΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ piglat/LC_MESSAGES ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ LC_ALL=piglat' Π±Π΅Π· Π²ΡΡΠΊΠΎΠ³ΠΎ ΡΡΠΏΠ΅Ρ Π°, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ ΡΡΠΎ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
149
ftp://ftp.gnu.org/gnu/gettext β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
150
http://www.unicode.org β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
151
GNU/Linux Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ, Π½ΠΎ Π»ΠΈΡΡ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
152
Π‘ΠΏΡΠ°Π²ΠΎΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° GNU/Linux fcntl(3) ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅! ΠΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°Ρ ΠΏΠΎ ΡΠ΅ΡΠΈ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π² ΠΎΠ±ΡΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΄Π°ΡΠ½ΠΎΠΉ ΠΌΡΡΠ»ΡΡ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
153
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ GNU/Linux lockf() ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ Β«ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈΒ» Π²ΠΎΠΊΡΡΠ³ fcntl() β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
154
Π’ΡΠΏΠΈΠΊ (deadlock) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΆΠ΄ΡΡ, ΠΏΠΎΠΊΠ° Π΄ΡΡΠ³ΠΎΠΉ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
155
Π£Π΄Π°ΡΠ½ΠΎ, ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ flock() ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ lockf(), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΡΠ°Π·Π»ΠΈΡΠ½Π°. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°ΡΠ½ΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ. ΠΠ΅ΡΠΆΠΈΡΠ΅ ΡΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ. β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
156
Π ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ gettimeofday(2) Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ settimeofday() Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (root) Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π½Ρ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
157
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π΄Π»Ρ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΡΠ»Π΅Π½ΠΎΠ² struct stat, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°ΠΊΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΠΉ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
158
ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΡΡΠΎΠΈΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ²ΠΎΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
159
Π Π³ΠΎΠ»ΠΎΠ²Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΎΠ±ΡΠ°Π·Ρ, ΠΊΠ°ΠΊ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΈΠ΄ΡΡ Π΄ΡΡΠ³ ΡΡΠ΄ΠΎΠΌ Ρ Π΄ΡΡΠ³ΠΎΠΌ Π·Π° ΡΠ°Π΅ΠΌ ΠΈ ΠΏΠΈΡΠΎΠΆΠ½ΡΠΌΠΈ. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΠ°ΠΊΠΎΠ΅ Π±ΡΠ²Π°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ²ΠΎΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ. β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
160
ΠΡΠΎΡ Π²ΡΠ²ΠΎΠ΄ Π΄Π»Ρ ΡΠ°ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° U.S. Eastern Time zone β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
161
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΠΊΠΎΠ·Π»ΠΎΠΌ ΠΎΡΠΏΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. Π ΠΏΡΠΎΡΠ»ΠΎΠΌ ΠΎΠ±Π²ΠΈΠ½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π±ΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½Ρ. Π‘ΡΠ΄Ρ ΠΏΠΎ Π½Π°ΡΠ΅ΠΌΡ ΠΎΠΏΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΡΠ»ΡΡΠ°ΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΏΡΠΈΠ²Π½ΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠ΄ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
162
ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ BSD dbx. Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π΅ΡΡΡΠΈ Π»Π΅Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ GDB β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
163
ddd ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ GNU/Linux. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° FTP-ΡΠ°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° GNU ddd (ftp://ftp.gnu.org/gnu/ddd/) β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
164
http.//sources.redhat.com/insight/ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
165
ftp://ftp.gnu.org/gnu/gdb/ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
166
http://www.gnu.org β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
167
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΠΌ. sysctl(8) β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
168
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ 213Γ275 ΠΌΠΌ β ΠΡΠΈΠΌΠ΅Ρ. ΠΏΠ΅ΡΠ΅Π².
169
Bjarne Stroustrup, ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Π‘++, Π½Π°ΡΡΠΎΠΉΡΠΈΠ²ΠΎ ΡΠ°Π±ΠΎΡΠ°Π» Π½Π°Π΄ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π‘ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅Π½ΡΠΆΠ½ΡΠΌ Π² Π‘++. ΠΠΎ Π½Π°ΡΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, ΠΎΠ½ Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠ±ΠΈΠ»ΡΡ ΡΡΠΏΠ΅Ρ Π°: #include Π½ΡΠΆΠ΅Π½ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ. ΠΠ»Ρ Π‘ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ΅Π½Π½ΡΠΌ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, Π½ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±Π»Π°Π³ΠΎΡΠ°Π·ΡΠΌΠ½ΠΎ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
170
Π‘Π΅ΡΡΠ΅Π·Π½ΠΎ! Π§Π°ΡΡΠΎ Π»ΡΠ΄ΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π· gawk ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΌΠ½ΠΈΡΠ΅, Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ! β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
171
ΠΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ ΡΡΡ ΡΡ Π΅ΠΌΡ. Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π¦Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΠΌΠΈ Π² Ρ ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ ΠΎΠΏΡΡΠ° β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
172
ΠΠΏΡΡΡ-ΡΠ°ΠΊΠΈ, GCC 3.1 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΉ ΠΈ GDB 5 Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΡΡ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ, Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΎΠΏΡΠΈΡΠΌΠΈ. ΠΡΠΎ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΠ°Π½Π΅Π΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 15.4.1.2 Β«ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈΒ». β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
173
ΠΡΠ° ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π±ΡΠ»Π° Ρ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ ΡΡΠΈΡ ΡΡΡΠΎΠΊ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ°. β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
174
ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π² ΠΊΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΡΡΠ΅ΡΠΎΠΌ! β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
175
ftp://ftp.ninemoons.corn/pub/dbug/ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
176
Π C99, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΡΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ K&R Π‘ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
177
Π₯ΠΎΡΡ Π½Π°ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ Π±Ρ ΡΡΠ²ΠΎΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΡΠΎΠΊ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΉ. Π‘ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠΎ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ, ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Π΅ΠΌ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠΠ°ΡΠ° Π²ΡΠ³ΠΎΠ΄Π°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
178
ftp://ftp.perens.com/pub/ElectricFence β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
179
GDB ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ LD_PRELOAD: set environment LD_PRELOAD=PATH_TO_YOUR_LIBRARY β ΠΡΠΈΠΌΠ΅Ρ. Π½Π°ΡΡ. ΡΠ΅Π΄.
180
http://www.dmalloc.com β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
181
ΠΡΠ΅ Π² Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ GNU/Linux! β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
182
http://www.winehq.com β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
183
http://valgrind.kde.org β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
184
http://www.linuxjournal.com/article.php?sid=6059 β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
185
http://www.linuxjournal.com/article.php?sid=6556 β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
186
http://www.splint.org β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
187
http://www.debuggingrules.com β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
188
http://www.amacombooks.org β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
189
http://www.cs.bell-labs.com/cm/cs/pearls/ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
190
Π ΡΡΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΡΠ°ΠΉΠ°Π½ ΠΠ΅ΡΠ½ΠΈΠ³Π°Π½, Π ΠΎΠ± ΠΠ°ΠΉΠΊ. UNIX: ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅. Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³. Π‘ΠΈΠΌΠ²ΠΎΠ»-ΠΠ»ΡΡ, 2003 β ΠΡΠΈΠΌΠ΅Ρ. Π½Π°ΡΡ. ΡΠ΅Π΄.
191
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π½Π°ΡΠ°Π»Π΅ β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
192
http://www1.neweb.ne.jp/wa/yamdas/column/technique/21-daysj.html β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.
193
http://loro.sf.net/notes/21-dias.html β ΠΡΠΈΠΌΠ΅Ρ. Π°Π²ΡΠΎΡΠ°.