Programbibliotek

Diagram över ett program som använder programbiblioteket libvorbisfile.so för att spela en Ogg Vorbis-fil.

Inom datatekniken är ett programbibliotek (engelska: library) en samling subrutiner som används för att utveckla mjukvara. De bibliotek som ingår i plattformens grundläggande infrastruktur kallas systembibliotek. Programbibliotek innehåller stöd i form av programkod och datastrukturer som tillsammans tillhandahåller tjänster för separat användarprogram (ofta kallade "klientprogram" eller "klienter"). Detta möjliggör distribution och modifikation av biblioteket på ett modulärt sätt. Några exekverbara filer är både självständiga program men även programbibliotek, men de flesta programbibliotek kan inte exekveras för sig själva. I stället binds klientprogram till programbibliotek genom en process som kallas länkning.

De flesta moderna operativsystem erbjuder programbibliotek som innefattar huvuddelen av systemets funktioner. I de flesta moderna program består stora delar av programmet av funktionsanrop till diverse programbibliotek. En del funktioner kräver speciella privilegier och måste därför skötas som systemanrop, i allmänhet via systembibliotek.

Exempel

Exempel på hur ett bibliotek eller headerfil kan se ut:

#ifndef _HEJ_H_
#define _HEJ_H_

#include <windows.h>
void fonster()
{
    MessageBox(NULL, L"Hej, här är ett fönster!", L"Florevo", NULL);
}

#endif

Och så programmet som kallar på headerfilen:

#include "hej.h" //headerfilens namn, att jag använder "" visar att filen ligger i samma mapp som
                 //programmet, om jag hade använt <> hade vi fått ett error som säger att
                 //kompilatorn inte kan hitta filen, det är för att den inte letat i projektmappen
                 //utan bara där kompilatorn är angiven att hitta headerfiler.
int main()
{
    fonster(); //Nu kallar vi på funktionen fonster och får upp en lite windowsruta med titeln:
               //"Florevo", och texten: "Hej, här är ett windowsfönster!".
}

Detta var ett relativt litet exempel eftersom en headerfil oftast är väldigt lång och komplex, men detta visar grunderna hur det funkar.

Bild på hur ett kompilerat program med koden ovan kan se ut.
Andra Språk
العربية: مكتبة برمجية
eesti: Teek
Bahasa Indonesia: Pustaka perangkat lunak
日本語: ライブラリ
norsk nynorsk: Programvarebibliotek
தமிழ்: நிரலகம்
中文: 函式庫