Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Командная строка LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 82

Автор Шоттс Уильям

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° C

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ скомпилируСм. Для этого Π½Π°ΠΌ понадобятся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ компилятор, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° make. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²ΠΎ всСх систСмах Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ компилятор языка C с ΠΈΠΌΠ΅Π½Π΅ΠΌ gcc (GNU C Compiler), ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ написанный Π ΠΈΡ‡Π°Ρ€Π΄ΠΎΠΌ Π‘Ρ‚ΠΎΠ»Π»ΠΌΠ°Π½ΠΎΠΌ. МногиС дистрибутивы Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ gcc ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ присутствиС Π² систСмС ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

[[email protected] ~]$ which gcc

/usr/bin/gcc

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ присутствии компилятора.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

Π’Π°Ρˆ дистрибутив ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π°ΠΏΠ°ΠΊΠ΅Ρ‚ (ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²) для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’ этом случаС рСкомСндуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Ссли Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² своСй систСмС. Если Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚Π°ΠΏΠ°ΠΊΠ΅Ρ‚ отсутствуСт, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ gcc ΠΈ make. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… дистрибутивах ΠΈΡ… Π²ΠΏΠΎΠ»Π½Π΅ достаточно для выполнСния ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π»Π΅Π΅.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π°

Π’ нашСм ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ ΠΌΡ‹ скомпилируСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ diction ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU. Π­Ρ‚Π° малСнькая удобная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΠ° провСряСт качСство ΠΈ ΡΡ‚ΠΈΠ»ΡŒ содСрТимого тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ². А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Π½Π΅Π²Π΅Π»ΠΈΠΊΠ°, ΠΎΠ½Π° Π»Π΅Π³ΠΊΠΎ компилируСтся.

БлСдуя соглашСниям, ΠΌΡ‹ сначала создадим ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src для исходного ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ Π² Π½Π΅Π³ΠΎ исходный ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ftp:

[[email protected] ~]$ mkdir src

[[email protected] ~]$ cd src

[[email protected] src]$ ftp ftp.gnu.org

Connected to ftp.gnu.org.

220 GNU FTP server ready.

Name (ftp.gnu.org:me): anonymous

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd gnu/diction

250 Directory successfully changed.

ftp> ls

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

-rw-r--r--Β Β Β Β 1 1003Β Β 65534Β Β Β 68940 Aug 28Β Β 1998 diction-0.7.tar.gz

-rw-r--r--Β Β Β Β 1 1003Β Β 65534Β Β Β 90957 Mar 04Β Β 2002 diction-1.02.tar.gz

-rw-r--r--Β Β Β Β 1 1003Β Β 65534Β Β 141062 Sep 17Β Β 2007 diction-1.11.tar.gz

226 Directory send OK.

ftp> get diction-1.11.tar.gz

local: diction-1.11.tar.gz remote: diction-1.11.tar.gz

200 PORT command successful. Consider using PASV.

150 Opening BINARY mode data connection for diction-1.11.tar.gz (141062

bytes).

226 File send OK.

141062 bytes received in 0.16 secs (847.4 kB/s)

ftp> bye

221 Goodbye.

[[email protected] src]$ ls

diction-1.11.tar.gz

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ сами управляСм процСссом компиляции исходного ΠΊΠΎΠ΄Π°, помСстим Π΅Π³ΠΎ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ~/src. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, устанавливаСмый дистрибутивом, помСщаСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/src, Π° исходный ΠΊΠΎΠ΄, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для использования мноТСством ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ устанавливаСтся Π² /usr/local/src.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ распространяСтся Π² Π²ΠΈΠ΄Π΅ сТатого tar-Ρ„Π°ΠΉΠ»Π°. Иногда Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‚Π°Ρ€Π±ΠΎΠ»Π»Π°ΠΌΠΈ (tarball), эти Ρ„Π°ΠΉΠ»Ρ‹ содСрТат Π΄Π΅Ρ€Π΅Π²ΠΎ исходных тСкстов, ΠΈΠ»ΠΈ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… исходный ΠΊΠΎΠ΄. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ FTP-сайту, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ список доступных tar-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΡΠ°ΠΌΡƒΡŽ ΡΠ²Π΅ΠΆΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ get ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ftp скопировали Ρ„Π°ΠΉΠ» с сСрвСра FTP Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ.

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ tar-Ρ„Π°ΠΉΠ»Π° Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ. ДСлаСтся это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ tar:

[[email protected] src]$ tar xzf diction-1.11.tar.gz

[[email protected] src]$ ls

diction-1.11Β Β Β Β Β Β Β Β diction-1.11.tar.gz

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° diction, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ всСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU, слСдуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ стандартам ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ исходного ΠΊΠΎΠ΄Π°. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΡ… исходных ΠΊΠΎΠ΄ΠΎΠ², доступных Π² экосистСмС Linux, Ρ‚Π°ΠΊΠΆΠ΅ слСдуСт этому стандарту. Одним ΠΈΠ· элСмСнтов стандарта являСтся созданиС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ исходных тСкстов ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ project-x.xx послС распаковывания tar-Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, содСрТащим имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½ΠΎΠΌΠ΅Ρ€ вСрсии. Вакая схСма ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ установку Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вСрсий ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Однако ΠΏΠ΅Ρ€Π΅Π΄ распаковываниСм Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π±Ρ‹ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π΅Ρ€Π΅Π²Π°. ΠŸΡ€ΠΈ распаковывании Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π΅ создаСтся, Π° Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ нСпосрСдствСнно Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅Ρ€Π°Π·Π±Π΅Ρ€ΠΈΡ…Ρƒ ΠΈ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ Π² Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ src. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ для исслСдования содСрТимого tar-Ρ„Π°ΠΉΠ»Π°:

tar tzvf tarfile | head

ИсслСдованиС Π΄Π΅Ρ€Π΅Π²Π° исходных тСкстов

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ распаковывания tar-Ρ„Π°ΠΉΠ»Π° Π±Ρ‹Π» создан Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ new diction-1.11. Π­Ρ‚ΠΎΡ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ содСрТит Π΄Π΅Ρ€Π΅Π²ΠΎ исходных тСкстов. Π”Π°Π²Π°ΠΉΡ‚Π΅ заглянСм Π²Π½ΡƒΡ‚Ρ€ΡŒ:

[[email protected] src]$ cd diction-1.11

[[email protected] diction-1.11]$ ls

config.guessΒ Β diction.cΒ Β Β Β Β Β Β Β getopt.cΒ Β Β Β Β Β nl

config.h.inΒ Β Β diction.potΒ Β Β Β Β Β getopt.hΒ Β Β Β Β Β nl.po

config.subΒ Β Β Β diction.specΒ Β Β Β Β getopt_int.hΒ Β README

configureΒ Β Β Β Β diction.spec.inΒ Β INSTALLΒ Β Β Β Β Β Β sentence.c

configure.inΒ Β diction.texi.inΒ Β install-shΒ Β Β Β sentence.h

COPYINGΒ Β Β Β Β Β Β enΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Makefile.inΒ Β Β style.1.in

deΒ Β Β Β Β Β Β Β Β Β Β Β en_GBΒ Β Β Β Β Β Β Β Β Β Β Β misc.cΒ Β Β Β Β Β Β Β style.c

de.poΒ Β Β Β Β Β Β Β Β en_GB.poΒ Β Β Β Β Β Β Β Β misc.hΒ Β Β Β Β Β Β Β test

diction.1.inΒ Β getopt1.cΒ Β Β Β Β Β Β Β NEWS

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ мноТСство Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ GNU, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ вмСстС с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ README, INSTALL, NEWS ΠΈ COPYING. Π’ Π½ΠΈΡ… содСрТится описаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, информация ΠΎ порядкС сборки ΠΈ установки ΠΈ условия Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ соглашСния. Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ всСгда Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ README ΠΈ INSTALL ΠΏΠ΅Ρ€Π΅Π΄ сборкой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ интСрСсными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ .c ΠΈ .h:

[[email protected] diction-1.11]$ ls *.c

diction.cΒ Β getopt1.cΒ Β getopt.cΒ Β misc.cΒ Β sentence.cΒ Β style.c

[[email protected] diction-1.11]$ ls *.h

getopt.hΒ Β getopt_int.hΒ Β misc.hΒ Β sentence.h

Π€Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .c содСрТат Π΄Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° C, входящиС Π² состав ΠΏΠ°ΠΊΠ΅Ρ‚Π° (style ΠΈ diction), Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹Π΅ Π½Π° нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ часто Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ простыС Π² сопровоТдСнии Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹. Π€Π°ΠΉΠ»Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ содСрТат простой тСкст, ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ less:

[[email protected] diction-1.11]$ less diction.c

Π€Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .h извСстны ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Они Ρ‚ΠΎΠΆΠ΅ содСрТат простой тСкст β€” описаниС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ компилятор смог ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ описаниС всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π΅Π΄ΠΈΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π‘Π»ΠΈΠΆΠ΅ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ Π² Ρ„Π°ΠΉΠ»Π΅ diction.c имССтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка:

#include "getopt.h"

Она Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ компилятора ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°Π» getopt.h, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π° Π² diction.c, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«ΡƒΠ·Π½Π°Ρ‚ΡŒΒ», Ρ‡Ρ‚ΠΎ имССтся Π² Ρ„Π°ΠΉΠ»Π΅ getopt.c. Π€Π°ΠΉΠ» getopt.c содСрТит ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±Π΅ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, style ΠΈ diction.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π° getopt.h ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π΅Ρ‰Π΅ нСсколько инструкций include:

#include <regex.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

Они Ρ‚Π°ΠΊΠΆΠ΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π½ΠΎ эти Ρ„Π°ΠΉΠ»Ρ‹ хранятся Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄Π΅Ρ€Π΅Π²Π° исходных тСкстов. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ систСмой для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /usr/include:

[[email protected] diction-1.11]$ ls /usr/include

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² процСссС установки компилятора.

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ