Visualizzazione dei risultati da 1 a 4 su 4

Discussione: C: funzione per errori

  1. #1

    C: funzione per errori

    ho un problema con un programma, mi da segmantation faults e non capisco perchè, c'è qualche funzione che può stamparmi il tipo di errore?
    Grazie Francesco

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    173

    Gestione degli errori

    Per la gestione degli errore si possono usare le funzioni assert(), contenuta nel file di libreria assert.h, e perror(), contenuta nel file di libreria errno.h.

    Per quanto riguarda assert() il suo prototipo è:
    void assert( int espressione);
    Mentre per quanto riguarda perror() il prototipo è:
    void perror( char *msg );
    Eccoti due esempi di impieghi delle due funzioni:

    .........
    int x;
    printf("Inserire valore intero: ");
    scanf("%d", &x);

    assert( x >= 0 );

    printf("\nHai inserito %d", x);
    return 0;
    ...........

    FILE *fp;
    char filename[60];

    puts("Inserisci nome o percorso del file: ");
    gets(filename);

    if(( fp = fopen (filename, "r")) == NULL)
    {
    perror("Errore!:");
    printf("errno: %d", errno);
    getchar();
    }

    else
    {
    printf("FIle aperto in lettura");
    fclose(fp);
    }

    return 0;

    CIAO

  3. #3
    NO! per controllare i segfault l'unico modo e' quello di runnare il programma in debugging mode e di vedere la linea incriminata. Cmq dovresti accorgertene anche da solo...

    bye
    There are 10 kinds of people in the world: who knows the binary numeration and who not

  4. #4
    NO!


    Un inizio: prova a compilare i files con l`opzione -g e poi avvia il programma con gdb. Cmq sono quasi sempre errori associati a puntatori usati impropriamente.. Controlla *bene* il codice.

    Ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.