Funzioni comuni
[Specifiche comuni a tutti i Moduli]


Functions

void LPC_GestioneErrore (int ErrorCode, char *Func, char *Msg)
 Stampa l'errore.

Function Documentation

void LPC_GestioneErrore int  ErrorCode,
char *  Func,
char *  Msg
 

Stampa l'errore.

Scrive un codice di errore, la funzione chiamante e un messaggio di errore. L'errore viene stampato su stderr.

Il parametro ErrorCode è il codice di errore. Func e' il nome della funzione che sta intercettando l'errore e Msg e' il messaggio di errore.

Da notare che Func non è il nome della funzione che ha generato un errore, ma il nome della funzione che lo ha ricevuto.
Il messaggio di errore e' una stringa che puo' contenere le informazioni aggiuntive per il miglior monitoraggio dell'errore.

I codici di errore delle funzioni da implementare sono già definiti in LPC_Include.h

Tutti i codice di errore sono negativi.

Esempio di gestione dell'errore:

        int Insert()
        {
        ....
                if (NumFields < 0)
                {
                        char Err[256];
                        (void) sprintf(Err, "Errore parametro NumFields negativo");
                        LPC_GestioneErrore(LPC_BAD_ARG, "Insert", Err);
                        < Liberare tutta la memoria allocata in questa funzione >
                        return(LPC_BAD_ARG);
                }
        ....
        }

Esempio di gestione dell'errore su allocazione memoria:

        int Insert()
        {
        ....
                buf = calloc(10, sizeof(long));
                if (!buf)
                {
                        char Err[256];
                        (void) sprintf(Err, "Errore allocazione memoria");
                        LPC_GestioneErrore(LPC_NO_MEMORY, "Insert", Err);
                        < Liberare tutta la memoria allocata in questa funzione >
                        return(LPC_NO_MEMORY);
                }
        ....
        }

Esempio di gestione dell'errore ritornato da una chiamata ad una funzione di sistema:

        int Insert()
        {
        ....
                ret = fwrite(buffer, sizeof(char), len, fp);
                if (ret != len)
                {
                        char Err[256];
                        (void) sprintf(Err, "Errore di sistema [%d] in scrittura su file:[%s]", errno, strerror(errno));
                        LPC_GestioneErrore(LPC_ERR_WRITE, "Insert", Err);
                        < Liberare tutta la memoria allocata in questa funzione >
                        return(LPC_ERR_WRITE);
                }
        ....
        }

Esempio di gestione errore per una chiamata ad una funzione interna:

        int Insert()
        {
        ... 
                ret = GetDBFInfo(handle, &DBFInfo);
                if (ret != LPC_OK)
                {
                        char Err[256];
                        (void) sprintf(Err, "Errore chiamata alla GetDBFInfo:[%d]", ret);
                        LPC_GestioneErrore(ret, "Insert", Err);
                        return(ret);
                }
        ....
        }

Parameters:
[in] ErrorCode Codice dell'errore
[in] Func Funzione da cui viene la chiamata
[in] Msg Messaggio di errore
Author:
Gianni Campanile

Stefano Guerrini

Andrea Sterbini

Date:
Gennaio 2006
Version:
1.0


Generated on Wed Mar 1 11:56:02 2006 for LPC - Modulo 1 by  doxygen 1.4.6-NO