Manuale libreria file
H_file: gestione dei file con organizzazione hash
Struttura dati
Primitive
int H_creat (char* path, long recsize, long filesize, long keysize);
Crea un file di nome path e lo inizializza opportunamente. Le informazioni relative alla struttura vengono inserite nei primi bytes. Se il file esiste allora errore. Restituisce -1 per errore, 0 altrimenti.
H_file* H_open (char* path);
Apre un file esistente, legge i primi bytes con i quali si inizializza la struttura dati H_file; ha in input il nome del file e restituisce il puntatore alla struttura dati in cui sono memorizzate le informazioni necessarrie alla gestione del file stesso. Restituisce 0 in caso di errore.
int H_write (H_file* hf, char* record);
Scrive un record nel file alla giusta posizione; ha in input il puntatore al descrittore del file da utilizzare e il record da inserire nel file. Restituisce -1 per errore, 0 se l'operazione ha successo.
int H_read (H_file* hf, char* record);
Legge un record dal file hash; ha in input il puntatore al descrittore del file da utilizzare e l'indirizzo del record dove inserire i dati letti. Nel record deve essere preventivamente inserita la chiave. Restituisce -1 per errore, 0 se l'operazione ha successo.
int H_delete (H_file* hf, char* record);
Cancella un record dal file hash; ha in input il puntatore al descrittore del file da utilizzare e l'indirizzo del record dove deve essere preventivamente inserita la chiave. Restituisce -1 per errore, 0 se l'operazione ha successo.
int H_close (H_file* hf);
Chiude il file, liberando la memoria associata; ha in input il puntatore al descrittore del file da utilizzare. Restituisce -1 per errore, 0 se l'operazione ha successo.
D_file: gestione dei file ad accesso diretto.
struttura dati
Primitive
D_file* D_open (char* path, int recsize);
Apre un file ad accesso diretto predisponendo le strutture in memoria; ha in input il nome del file e la dimensione del record, restituisce il puntatore alla struttura dati D_file; se fallisce restituisce 0.
int D_read (D_file* df, char* record);
Legge un record; ha in input il puntatore al descrittore del file da utilizzare e l'indirizzo del record dove inserire i dati letti; il record letto è specificato dal campo next. Restituisce -1 (record inesistente) in caso di errore, 0 altrimenti.
int D_write (D_file* df, char* record);
Scrive un record; ha in input il puntatore al descrittore del file da utilizzare e l'indirizzo del record dove vi sono i dati da scrivere sul file; i dati vengono scritti nella posizione corrente. Restituisce -1 in caso di errore, 0 altrimenti.
int D_seek (D_file* df, long position);
Modifica il contenuto della posizione corrente, settandola a position. ha in input il puntatore al descrittore del file da utilizzare e la nuova posizione corrente. Restituisce -1 in caso di errore, 0 altrimenti.
int D_lastpos (D_file* df)
Restituisce la posizione dell'ultimo record del file; ha in input il puntatore al descrittore del file da utilizzare. Restituisce -1 in caso di errore.
int D_current (D_file* df);
Restituisce la posizione del record corrente del file; ha in input il puntatore al descrittore del file da utilizzare. Restituisce -1 in caso di errore.
int D_close (D_file* df);
Chiude il file; ha in input il puntatore al descrittore del file da utilizzare. Restituisce -1 per errore, 0 altrimenti
I_file: gestione dei file ad accesso index
Primitive
int I_creat( char* name, int n_livel, int recsize, int i_key, int l_key )
crea il file con organizzazione index; n_livel= numero livelli di chiave;
recsize = dimensione record;
i_key = posizione della chiave nel record( 0 per p. p.)
l_key= lunghezza chiave;
La chiave può essere composta da più campi.
I_file* I_open( char* name )
Apre il file name predisponendo tutte le strutture dati necessarie per l'utilizzo.
int I_delete( I_file* f , char* key )
Cancella il record di chiave key; restituisce 0 per successo, -1 se non trovato
int I_read( I_file* f, char* r )
Legge un record con chiave; r indica il record che deve contenere la chiave di ricerca; i dati sono inseriti in r; restituisce 0 per trovato, -1 per non trovato; in questo ultimo caso il puntatore è posizionato sul primo record successivo in base all'ordinamento alfabetico.
int I_readnext( I_file* f, char* r )
legge il prossimo record inserendo i dati in r; restituisce 0 per trovato, -1 per errore.
int I_write( I_file* f, char* rec )
scrive un record nel file; restituisce sempre 0; se il record non esiste viene inserito, se esiste vengono modificati i dati.
int I_close(I_file* If)
chiude il file; restituisce sempre 0;