Kirjastofunktioilla (engl. library functions) tarkoitetaan Tcl-kielen valmiita aliohjelmia [WEL97W]. Ne ovat siis käytössä kaikissa ohjelmissa ilman, että niitä on itse tarvinnut ohjelmoida. Tä ;llaisia ovat esimerkiksi matemaattiset kirjastofunktiot, kuten sin(x) ja cos(x). Tietysti myös kaikkien Tcl-komentojen voidaan sanoa olevan kirjastofunktioita, jotka vain ladataan muistiin auto maattisesti heti ohjelman suorituksen alussa. Kirjastofunktioita voi myös itse määritellä, jolloin ne ovat halutessasi käytössä kaikissa tekemissäsi ohjelmissa. Tcl-kielessä on myös muutamia oletuskirjasto ja (engl. default library), jotka ovat automaattisesti käytössä kaikissa ohjelmissa (esim. komento parray). Kirjastofunktiot ovat kuin kirjaston kirjoja, joita voidaan vapaasti lainata, ja tietyt kirjat ov at automaattisesti lainassa koko ajan (oletuskirjastot). Laina-aika kaikilla kirjoilla on ohjelman suorituksen viemä aika.
Tcl-tulkki alustaa ohjelmien alussa automaattisesti muuttujan auto_path, johon tulkki laittaa kirjastofunktioiden hakemistopolun. Hakemiston alihakemistoista löytyy Tcl-kielen oletuskirjastot. Jos on its e määritellyt kirjastofunktioita tiedostoon, on sen hakemiston löydyttävä auto_path-hakemiston alihakemistoista. auto_path-muuttujaan voi itse lisätä sen hakemiston , johon on oman kirjastonsa tallentanut tai sitten voi luoda uuden alihakemiston omille kirjastoilleen auto_path-hakemiston alle.
Esimerkissä
set auto_path
=>/usr/local/tcl/lib
set omakirjasto "/usr/meikalainen/kirjastot"
lappend auto_path omakirjasto
set auto_path
=>/usr/local/tcl/lib /usr/meikalainen/kirjastot
lisätään käyttäjän oma hakemisto /usr/meikalainen/kirjastot auto_path-hakemistoon, jolloin ohjelma käy etsimässä kirjastoja myös sieltä.
Omia kirjastoja käytettäessä pitää kirjastoon määrittää kyseessä oleva kirjasto ja sen versionumero. Komennolla package provide an netaan parametreina kirjastotiedoston nimi ja sen versionumero seuraavalla tavalla:
package provide oma.tcl 1.1
Ylläoleva rivi tulisi siis sijoittaa itsetehtyyn kirjastoon, tässä tapauksessa oma.tcl-tiedoston alkuun. Versionumero on 1.1. Kun kyseistä oma-kirjastoa halutaan käyttää ohjelmassa, on sille ilmoitettava mukaan liitettävä kirjasto ja mahdollisesti sen haluttu versionumero jollain seuraavista tavoista:
package require oma.tcl
tai
package require oma.tcl 1.1
tai
package require oma.tcl 1.1 -exact
package require -komento on oltava siinä ohjelmassa, jossa kirjaston oma-funktioita käytetään. Ensimmäinen esimerkki liittää ohjelmaan oma-kirjaston, jolla on korkein versionumero. oma.tcl-tiedostoja voi siis olla useampia, joissa vain versionumero vaihtelee. Toinen esimerkki liittää mukaan kirjaston, jonka versionumero on 1.1. Jos sen versionumeron oma avaa oma.tcl-tiedostoa ei löydy, liitetään mukaan suurimman versionumeron omaava kirjasto. Viimeisessä esimerkissä parametri -exact määrää sen, että juuri versio numeroltaan 1.1 on liitettävä mukaan ohjelmaan.
Kun ohjelmassa kutsutaan jotain kirjastofunktioita ensimmäistä kertaa, kutsuu ohjelma automaattisesti komentoa unknown. Se käy etsimässä funktiota kirjastoista ja sen löydytty&au ml;, ohjelma lataa etsityn funktion sisältävän kirjaston. Tämän jälkeen kirjastofunktio ja kaikki muutkin sen kirjaston funktiot ovat käytettävissä ohjelmassa ilman, että niitä tarvitsee uudelleen lad ata käyttöön.
Usein ohjelmista tulee aika isoja ja tällöin on helpompaa, jos ohjelma koodi on hajautettu useampaan pienempään tiedostoon. source-komennolla voi ladata ohjelmaan suoraan jonkin tiedoston. Myös oman kirjastotiedoston voi ladata suoraan ohjelmaan source-komennolla ilman, että tekee siitä varsinaista kirjastoa. source-komento lataa kaikki aliohjelmat ja muuttujat ohjelmaa n. Tämän jälkeen ne ovat ohjelmassa käytössä ohjelman loppuun saakka samalla tavalla kuin ne olisi kirjoitettu fyysisesti samaan tiedostoon. Globaalien muuttujien kanssa kannattaa olla tarkkana ettei kutsuvassa ohjelmassa ole saman nimistä globaalia muuttujaa kuin source-komennolla mukaan liitettävässä tiedostossa. Esimerkissä
source oma.tcl
ladataan tiedosto oma.tcl ohjelmaan.
Taulukossa 4.5 on lueteltu kaikki Tcl-kielen matemaattiset kirjastofunktiot.
acos(x) |
asin(x) |
atan(x) |
atan2(y,x) |
ceil(x) |
cos(x) |
cosh(x) |
exp(x) |
floor(x) |
fmod(x,y) |
hypot(x,y) |
log(x) |
log10(x) |
pow(x,y) |
sin(x) |
sinh(x) |
sqrt(x) |
tan(x) |
tanh(x) |
abs(x) |
double(x) |
int(x) |
round(x) |
rand() |
srand(x) |
|
|
Taulukko 4.5. Tcl-kielen matemaattiset kirjastofunktiot.