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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 7

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

Π’ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

PATH
содСрТатся ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ для хранСния стандартных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (.), исходный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ графичСской ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ X Window System.

Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Π² ОБ Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прямой слэш (/) для отдСлСния ΠΈΠΌΠ΅Π½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слэша (\), примСняСмого Π² ОБ Windows. И снова ОБ UNIX Π²Ρ‹Π±ΠΈΡ€Π°Π»Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ.

ВСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹

Для Π²Π²ΠΎΠ΄Π° ΠΈ Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠ½ΠΈΠ³Π΅, Π²Π°ΠΌ понадобится тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. Π’ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… систСмах Linux Π΅ΡΡ‚ΡŒ большой Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ популярСн Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi.

Оба Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Emacs, поэтому ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° знакомство с основными функциями этого ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. ΠŸΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всС дистрибутивы ОБ Linux Emacs Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Web-сайтС GNU ΠΏΠΎ адрСсу http://www.gnu.org ΠΈΠ»ΠΈ ΠΆΠ΅ Π²Π·ΡΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ для графичСских срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Web-сайтС XEmacs ΠΏΠΎ адрСсу http://www.xemacs.org.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Emacs, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ срСдством обучСния. НачнитС с выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

emacs
, Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш <Ctrl>+<H> с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π²Π²ΠΎΠ΄ΠΎΠΌ символа
t
для доступа ΠΊ этому срСдству. Π£ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Emacs Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π΅ΠΌ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Emacs Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш <Ctrl>+<H> с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π²Π²ΠΎΠ΄ΠΎΠΌ символа
i
. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсиях Emacs ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ мСню, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ доступ ΠΊ срСдству обучСния ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ руководству.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ языка Π‘

Π’ систСмах, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… стандарту POSIX, компилятор языка Π‘ называСтся с89. РаньшС компилятор языка Π‘ назывался просто сс. Π¨Π»ΠΈ Π³ΠΎΠ΄Ρ‹, Ρ€Π°Π·Π½Ρ‹Π΅ поставщики ΠΏΡ€ΠΎΠ΄Π°Π²Π°Π»ΠΈ UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ систСмы с компиляторами Π‘, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ функциями ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ часто всС Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΌΠΈ сс.

Когда создавался стандарт POSIX, Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

cc
, которая Π±Ρ‹Π»Π° Π±Ρ‹ совмСстима со всСми этими Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ.Β 

ВмСсто этого ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ Ρ€Π΅ΡˆΠΈΠ» ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для компилятора языка Π‘ β€”

с89
. Если эта ΠΊΠΎΠΌΠ°Π½Π΄Π° прСдставлСна, ΠΎΠ½Π° всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΎΠΏΡ†ΠΈΠΈ нСзависимо ΠΎΡ‚ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Π’ систСмах Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° Π΄Π΅Π»Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ стандартам, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄

с89
,
cc
ΠΈ
gcc
ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° систСмный компилятор языка Π‘, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ компилятор GNU Π‘ ΠΈΠ»ΠΈ gcc. Π’ систСмах UNIX компилятор языка Π‘ ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда называСтся cc.

Π’ этой ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ gcc, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ поставляСтся Π² дистрибутивах Linux ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ для языка Π‘ синтаксис стандарта ANSI. Если ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² вашСй систСмС Π½Π΅Ρ‚ gcc, ΠΌΡ‹ совСтуСм ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Найти Π΅Π³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎ адрСсу http://www.gnu.org. Π’ΡΡŽΠ΄Ρƒ, Π³Π΄Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

gcc
, просто замСняйтС Π΅Π΅ подходящСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ вашСй систСмы.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 1.1. Π’Π°ΡˆΠ° пСрвая Linux-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° языкС C

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² ОБ Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка Π‘, написав, ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π² ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² свою ΠΏΠ΅Ρ€Π²ΡƒΡŽ Linux-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π•ΡŽ, кстати, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ самая извСстная ΠΈΠ· всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, выводящая сообщСниС "Hello World" ("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€").

1. Π”Π°Π»Π΅Π΅ приводится тСкст Ρ„Π°ΠΉΠ»Π° hello.c:

#include &lt;stdio.h&gt;

#include &lt;stdlib.h&gt;

int main() {

Β printf(&quot;Hello World\n&quot;);

Β exit(0);

}

2. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅, скомпонуйтС ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

$ gcc -ΠΎ hello.c $ ./hello

Hello World

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π’Ρ‹ запустили компилятор GNU Π‘ (Π² Linux, вСроятнСС всСго, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΈ ΠΊΠ°ΠΊ

cc
), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ оттранслировал исходный ΠΊΠΎΠ΄ Π½Π° языкС Π‘ Π² исполняСмый Ρ„Π°ΠΉΠ», Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ hello. Π’Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈ ΠΎΠ½Π° Π²Ρ‹Π²Π΅Π»Π° Π½Π° экран привСтствиС. Π­Ρ‚ΠΎ Π½Π°ΠΈΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Π½ΠΎ Ссли Π²Ρ‹ смогли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ вашСй систСмы Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ этого мСста, Ρ‚ΠΎ смоТСтС ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ. Если ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ сработала, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² вашСй систСмС установлСн компилятор языка Π‘. НапримСр, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… дистрибутивах Linux Π΅ΡΡ‚ΡŒ установочная опция, названная Software Development (Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ПО) (ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ для установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это пСрвая выполнСнная Π²Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, самоС врСмя ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС полоТСния. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° hello, вСроятно, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² вашСм исходном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Если Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

PATH
Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ссылка Π½Π° ваш исходный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π΅ смоТСт Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ hello. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
PATH
содСрТит Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°Π·Π²Π°Π½Π½ΡƒΡŽ hello, вмСсто вашСй Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π’ΠΎ ΠΆΠ΅ самоС ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ упомянут Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ path Ρ€Π°Π½ΡŒΡˆΠ΅ вашСго исходного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ прСфиксом
./
(Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
./hello
). Π”Π°Π½Π½Ρ‹ΠΉ прСфикс сообщаСт ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ ΠΎ нСобходимости Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½Π°Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. (Π’ΠΎΡ‡ΠΊΠ° β€” это условноС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.)

Если Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ†ΠΈΡŽ

-o name
, которая ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ компилятору, ΠΊΡƒΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ», компилятор помСстит Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ a.out (Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ассСмблСрный Π²Ρ‹Π²ΠΎΠ΄). НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ a.out, Ссли Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ скомпилировали ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° Π½Π°ΠΉΡ‚ΠΈ Π΅Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅! Когда ОБ UNIX Ρ‚ΠΎΠ»ΡŒΠΊΠΎ появилась, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, Ρ…ΠΎΡ‚Π΅Π²ΡˆΠΈΠ΅ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π² Π½Π΅ΠΉ Π² ΠΈΠ³Ρ€Ρ‹, часто запускали ΠΈΡ… ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ a.out, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΉΠΌΠ°Π½Π½Ρ‹ΠΌΠΈ систСмным администратором, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ установки ОБ UNIX Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Π΅Ρ‡Π΅Ρ€ всС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΈΠΌΠ΅Π½Π΅ΠΌ a.out.

ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π½Π°Ρ ΠΊΠ°Ρ€Ρ‚Π° систСмы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ОБ Linux Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ срСдства ΠΈ рСсурсы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Π΄Π°Π½ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранятся Π² ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… для Π½ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, прСдоставляСмыС систСмой для ΠΎΠ±Ρ‰Π΅Π³ΠΎ использования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, находятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /usr/bin. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ систСмными администраторами для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ хост-ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ локальной сСти, часто хранятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /usr/local/bin ΠΈΠ»ΠΈ /opt.

Администраторы ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ /opt ΠΈ /usr/local, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ хранят прСдоставляСмыС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ поставщиками Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ свСТиС дополнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, прСдоставляСмых систСмой. Подобная организация хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ врСмя ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, Ρ‚.ΠΊ. Π² этом случаС потрСбуСтся ΡΠ±Π΅Ρ€Π΅Ρ‡ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ /opt ΠΈ /usr/local. ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Π΅Ρ‚Π²ΠΈ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ /usr/local Ρ‚ΠΎΠ»ΡŒΠΊΠΎ систСмныС прилоТСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для запуска ΠΈ доступа ΠΊ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ. Для Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ Π² вашСм исходном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.