Programmazione.html.it

  Home page

   Guida Base

   Guida al Java

   Guida al C

   Guida al C++

   Guida al Delphi

   Guida a VB .NET

   Guida al Visual Basic

   Guida al Python

   Guida al'UML

  Forum di discussione
  HTML.it


Guida al linguaggio C
  LEZIONE:  Messaggi di Errore ed esempi pratici


Un'altra importante caratteristica del C, è che dispone di una serie di strumenti per riportare, al programmatore, gli errori commessi durante lo sviluppo. Quando prenderete dimestichezza con la programmazione capirete quanto sia importante avere degli strumenti per il debug, visto che buona parte dello sviluppo di un programma risiede proprio nella correzione degli errori; per poter utilizzare queste funzione è bene includere, oltre alla <stdio.h>, anche le librerie <stdlib.h> e <errno.h>. Una delle funzioni maggiormente utilizzate per questo scopo è la perror(), usata insieme alla errno; la struttura della funzione è la seguente:

void perror(const char *messaggio);

La perror() produce un messaggio a video descrivendo l'ultimo errore riscontrato e ritorna ad errno durante una chiamata ad una funzione di sistema o di libreria.

Errno è una variabile di sistema speciale che viene settata se una chiamata di sistema non esegue correttamente i propri compiti; per essere usata in un programma deve essere dichiarata come extern int errno;, a quel punto può essere manipolata attraverso gli strumenti messi a disposizione dal C, altrimenti ritorna l'ultimo valore ritornato da una funzione di sistema o di libreria. La funzione exit(), invece, si presenta con la seguente struttura:

void exit(int stato);

e serve essenzialmente per terminare l'esecuzione di un programma e ritornare il valore "stato" al sistema operativo, che può assumere essenzialmente questi due valori:
  • EXIT_SUCCESS - nel caso in cui il programma termini senza problemi;
  • EXIT_FAILURE - nel caso in cui il programma termini con errori.
ESEMPIO PRATICO (Visualizza il sorgente completo)
Il programma utilizza le funzioni di lettura e scrittura su file per leggere e salvare il file "rubrica.txt". La particolarità del programma è che salva in formato CSV (Comma Separated Value), formato che permette a programmi di posta come Outlook o Mozilla di importare i dati senza problemi.

LETTURA
472       FILE *stream = fopen("rubrica.txt","rt");
[...]
475       while(fgets(linea, 500, stream) != NULL)
[...]
510       fflush(stream);
511       fclose(stream);


SCRITTURA
525       FILE *stream = fopen("rubrica.txt","w");
[...]
532         fprintf(stream, "%s,%s,%s,%s,%s\n", p->inf.nome, p->inf.cognome, p->inf.telefono, p->inf.email, p->inf.sitoweb);
[...]
539       fflush(stream);
540       fclose(stream);


Nota particolare va a "getchar", utilizzata per scrivere una funzioncina che permette all'utente di leggere i dati una schermata per volta; grazie a getchar si può continuare l'esecuzione premendo invio.

573     void pausa()
574     { // pausa() - OPEN
575     
576       char invio;
577       printf("\n\n - premi INVIO per continuare -\n");
578       invio = getchar();
579       return;
580     
581     } // pausa() - CLOSE




Torna a inizio pagina