Justiiinsa kun meinasin ruveta kyselemään tuosta file not recon... olikin siihen jo vastattu.
Mutta millä tuo a.out suoritetaan?
Epeli tuolla jo lisäsikin soppaan parametrin jolla käännetyn ohjelman nimen pystyy itse määrittämään jo käännösaikana, eli siis tuo -o. tällöin:
$ gcc tero.c -o tero
tuottaa binäärin nimeltä tero, jonka voi suorittaa aivan kuten tomppa ohjeisti.
tuo suorittaminen tapahtuu noin, koska... komentotulkissa annettuja komentoja etsitään vain hakupolun* varresta, jos suoritettavaa sovellusta ei polun varresta löydy, niin tulostetaan virhe. jotta komentotulkki suorittaisi jonkun tietyn suoritettavaksi merkityn ohjelman, pitää sille antaa polku tähän suoritettavaksi tarkoitettuun binääriin. polku saa olla absoluuttinen tai suhteellinen.
käytännössä siis minun koneellani oman profiilini nimi on janne, joten työpöydällä olevan a.out-tiedoston voisi suorittaa absoluuttista polkua käyttäen komennolla:
$ /home/janne/Desktop/a.out
suhteellisella polulla, polku annetaan nimensä mukaan suhteessa siihen hakemistoon jossa parhaillaan ollaan, esim. jos olisi hakemistossa /home/janne, voisin komentaa:
$ Desktop/a.out
tompan antama polku on suhteellinen, sillä pistettä käytetään osoittamaan nykyiseen hakemistoon. vastaavasi kahta pistettä käytetään viittaamaa hakemistoon joka on yhtä pykällää lähempänä juurta aivan kuten komennon cd kanssakin. siis jos olen hakemistossa /home/janne/Desktop/juttui, onnistuu a.outin suoritus komennolla:
$ ../a.out
lisäksi on varmaan hyvä mainita, että tilde-merkki (~) osoittaa käyttäjän omaan kotihakemistoon (aivan kuten URLeissa
). siis voisin suorittaa a.out:n absoluuttisen polun lisäksi tildeä käyttäen, riippumatta siitä missä itse olen komentoa suorittaessani:
$ ~/Desktop/a.out
*ja se aikaisemmin mainittu hakupolku sijaitsee
ympäristömuuttujassa nimeltä PATH ja jos se kiinnostaa, niin sen saa näkyviin vaikkapa komentamalla:
$ echo $PATH
jossa etsittävät hakemistot on eroteltu kaksoispisteellä.