Rivikirjoitintulostuksessa Fortran-ohjelmasta kunkin rivin ensimmäinen merkki on ns. lomakkeenohjauskoodi: se ei tulostu vaan ohjaa rivinvaihtoa: välilyönti aiheuttaa normaalin rivinvaihdon, numero 0 kaksi rivinvaihtoa jne. Hyvin usein Fortran-ohjelmien tulostuslauseet ja formaatit kirjoitetaan tämän mukaisesti, ja siirrettävyyssyistä se onkin järkevää.
Rivikirjoitintulostusta ei kuitenkaan juurikaan enää käytetä, eikä useimpiin Unix-koneisiin edes ole liitetty perinteisiä rivikirjoittimia, vaan tulostus hoidetaan laserkirjoittimilla. Niille taas ei tulosteta suoraan vaan ohjaamalla tulostus tiedostoon ja sitten lähettämällä tiedosto kirjoittimelle sopivalla komennolla.
Monissa järjestelmissä lomakkeenohjauskoodit ovat voimassa ainakin rajoitetusti myös päätteelle tulostettaessa. Unix-järjestelmissä näin ei yleensä ole.
Esimerkiksi IBM:n Unix-toteutuksessa (Aix) lomakkeenohjauskoodien toimintaa voidaan kuitenkin simuloida käyttämällä Aixin pientä apuohjelmaa asa. Esimerkkejä käyttötavoista:
xyz | asa
siten, että sen
tulostus päätteelle muotoutuu
lomakkeenohjauskoodien mukaisesti
asa rslts
rslts
lomakkeenohjauskoodien mukaisesti
asa rslts | enscript
rslts
lomakkeenohjauskoodien
mukaisesti.
Jos kanavannumerolle halutaan muu kuin em. oletusmerkitys, voidaan kanavannumeron ja tiedoston vastaavuus esittää
OPEN
-lauseen FILE
-argumentissa taikka
Edellinen sopii käytettäväksi varsinkin silloin, kun ohjelma käyttää
kiinteännimisiä tiedostoja. Unixissa kirjoitetaan tällöin tiedostonnimi
sellaisenaan OPEN
-lauseen
FILE
-argumenttiin heittomerkkien sisään, esim.
OPEN(UNIT=10,FILE='input.dat')
Jos kuitenkin halutaan esim. käsitellä samalla ohjelmalla useita erinimisiä tiedostoja, on joustavampaa antaa tiedostomäärittelyt ohjelman ulkopuolella. Tätä varten on kussakin käyttöjärjestelmässä omat komentonsa.
Unixissa voidaan e.m. tarkoitukseen käyttää erilaisia välineitä, joista yleiskäyttöisin on seuraavassa kuvattava tapa, joka perustuu ns. symbolisten linkkien käyttöön. Tällöin käytetään esimerkiksi muotoa
ln -s
nimi fort.
n
olevaa komentoa, missä n on kanavannumero ja nimi on haluttu tiedostonnimi, esimerkiksi
ln -s input.data fort.1
Tässä oletettu vastaavuus, jossa Fortranin
ns. kanavannumeroa n vastaa tiedostonnimi
fort.
n, ei mitenkään välttämättä päde
kaikissa järjestelmissä ja on ymmärrettävä lähinnä
esimerkiksi. Tarkista asia kääntäjäkohtaisista ohjeista!
Tämä komento luo tiedostolle input.data
toisen, rinnakkaisen
nimen fort.1
. Voimme myös sanoa, että se luo uuden tiedoston
fort.1
, joka kuitenkin on pelkkä "symbolinen linkki" tiedostoon
input.data
.
Ohjelman ajamisen jälkeen on symbolinen linkki syytä poistaa komennolla
rm fort.
n
Muutoin nimittäin ei uusi ln
-komento samalle kanavalle onnistukaan.
Komennossa voidaan (erityisesti jos se esiintyy komentotiedostossa)
antaa optio -f
, jolloin komento ei "valita", vaikka kyseiselle
nimelle ei olisi olemassa symbolista linkkiä. Huomaa, että symboliseen
linkkiin kohdistettava rm
-komento ei poista sitä tiedostoa, johon
linkki viittaa, vaan vain linkin.
Symbolisella linkillä asetettu tiedostomäärittely on voimassa, kunnes se
erikseen poistetaan rm
-komennolla. Huomaa, että esim. yhteyden
katkaisu (logout) ei poista symbolisia linkkejä, koska ne ovat
tiedostojärjestelmään eivätkä vain pääteistuntoon liittyviä asioita.
Edellä esitetyllä tavalla asetetut, voimassaolevat symboliset linkit
saa selville sellaisella ls
-komennolla, jossa on
optio -l
, esimerkiksi
ls -l fort.*
Unixissa myös laitteisiin viitataan tiedostonnimillä. Tärkeimmät tällaiset nimet ovat
/dev/tty
/dev/null
ln -s /dev/tty fort.12
On kuitenkin huomattava, että tällöin tulostus on puskuroitua, ja päätteeltä lukemisen ja päätteelle tulostamisen järjestys ei välttämättä ole todellisuudessa sama kuin ohjelmakoodissa. Jos ohjelma esim. tulostaa kanavalle 12 ja sen jälkeen lukee päätteeltä, käy todennäköisesti niin, että se odottaa syöttötietoja ennen tulostamista.
Fortran-ohjelmissa tiedostoihin viitataan tunnetusti ns. kanavannumeroilla (unit numbers). Suosittelemme, että käytetään numeroita väliltä 1 - 99, joskin monissa järjestelmissä voidaan käyttää muitakin numeroita.
Jos kanavannumeron merkitystä ei muutoin ilmoiteta, niin Unix-järjestelmien Fortraneissa
fort.
n, esimerkiksi numero 1 tiedostoa fort.1