INDIETRO SU AVANTI

Le librerie per il Networking

Tutte le funzioni dichiarate o invocate all'interno di un gruppo di programmi in Linguaggio C, che vengono compilati insieme, devono essere definite in qualcuno di questi programmi.

Se non lo sono allora puo' darsi che siano definite all'interno di una libreria. Tale libreria deve essere indicata come opzione nel comando di compilazione, in modo che venga considerata nella fase di link finale dell'eseguibile.

Una libreria ha solitamente un nome del tipo:

L'opzione di compilazione per includere una di queste forme di libreria nell'eseguibile e':

cc ..... -lxxx ...

Ove xxx e' il nome della libreria. Solitamente viene preferita la libreria dinamica a quella statica se entrambe esistono, a meno di ulteriori opzioni di preferenza.

La locazione delle librerie e' predefinita per un determinato sistema UNIX. Si tratta solitamente di una o piu' delle directories /lib, /usr/lib o /usr/ccs/lib. E' possibile indicare una locazione (directory) diversa, p.es. la directory zzz con l'opzione di compilazione:

cc ... -Lzzz ...

Il compilatore C esegue sempre il link con la directory standard di UNIX, che si chiama libc. Puo' essere libc.a (raro) se e' una libreria statica, o (quasi sempre) libc.so.y.z se e' una libreria dinamica, ove y.z sono i numeri di versione.

In alcune versioni di UNIX, soprattutto quelle derivanti da BSD UNIX, tale libreria contiene molte funzioni definite anche della programmazione di applicativi di rete e addirittura dell'uso del toolkit RPC.

Con altre versioni di UNIX, tipicamente quelle che provengono da System V, e' necessario indicare il link con directory separate sia per l''uso del toolkit RPC che addirittura per la programmazione dei socket.

I nomi di tali librerie possono essere (escludendo il suffisso statico o dinamico):

Inoltre su versioni diverse del sistema operativo una partiicolare funzione puo' trovarsi in una libreria anziche' in un'altra. L'unica e' leggere il manuale relativo alla programmazione di rete.