Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [c] gestione inclusione di file mancante

    è possibile gestire con qualche direttiva del preprocessore il fatto che un file incluso possa non esistere????

    tnx


  2. #2
    Utente di HTML.it L'avatar di ibykos
    Registrato dal
    Feb 2005
    Messaggi
    201
    Potresti provare con la #ifndef, purché tu definisca una costante diversa per ogni file che può mancare all'appello.
    Ad esempio potresti creare un header in questo modo

    codice:
    #define __MY_HEADER___
    e nel codice inserire una define condizionata di questo tipo:

    codice:
    #ifndef __MY_HEADER___
    fprintf (stderr,"%s) ERRORE - header mancante\n",argv[0]);
    #endif

  3. #3
    essendo file di sistema, poso provare a veder se è definita una delle costanti che definisce, giusto? mi serve proprio per assicurarmi di avere una costante, assegnandogli altrimenti un defult

  4. #4
    Utente di HTML.it L'avatar di ibykos
    Registrato dal
    Feb 2005
    Messaggi
    201
    Non usarne una a caso, potrebbe essere definita da qualche altra parte per un altro motivo.
    Molto spesso all'inizio di un header è definita una costante apposta per fare in modo da non definire la stessa libreria tante volte in un unico programma con più sorgenti.
    Secondo me dovresti usare quella costante, se c'è.

  5. #5
    capiuto.. ma siccome a me serve in particolare una costante.... quindi mi controlo quella, il resto non serve

    il problema è che trattandosi di file sorgente di linux, potrebbe non esserci su qualche macchina... e il compilatore in caso si incazza mi pare, no? Come faccio a fa sì che effettui l'inclusione solo se il file esiste... o meglio.. a catturare e gestire l'errore in caso in cui il file non esista?


  6. #6
    parlo di errore al momento della compilazione.. trattasi di esame universitario e devo consegnare il sorgente

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    mmm
    sono perplesso

    voglio dire, prima di eseguire le #if si presume che il file sia già stato incluso

    se non è stato rilevato il compilatore dovrebbe uscire con un errore e le direttive condizionali seguenti sarebbero ignorate

    mi spiego con un esempio:

    codice:
    #include <unfiledisistema.h>
    
    /* 
    se il file non viene trovato il preprocessore va in errore 
    e le linee seguenti non sono compilate
    */
    
    #ifndef _UNFILEDISISTEMA_H
    fprintf(stderr,"oO");
    #endif
    
    //altra roba
    o no?

  8. #8
    sì appunto... quello che dico io è se esiste una direttiva che permetta din includere il file solo dopo averne veriifcato l'esuistenza... e gestire il caso contrario :Fagiano:

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Penso che non abbia senso fare una cosa del genere (e che non si possa fare).

  10. #10
    Originariamente inviato da oregon
    Penso che non abbia senso fare una cosa del genere (e che non si possa fare).
    ci ho sperato... tutto qui

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 © 2024 vBulletin Solutions, Inc. All rights reserved.