Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24

    leggere file zippati [C]

    Ciao a tutti,

    in un programma C ho la necessita' di inserire l'opzione per aprire un file compressato con estensione .gz o .zip, in read mode.
    Il programma gira in ambiente unix.

    C'e' qualche funzione particolare che mi permetta di farlo, senza dovere tutte le volte eseguire da riga di comando "gzip -d nomefile", prima di eseguire il programma?

    grazie e ciao

    Lucky

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Puoi usare la zlib ed includere nel prg le funzionalita' dei formati indicati
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24
    Grazie Linoma!

    Ora provo a guardare come funziona.

    Nel caso ti disturbo ancora ;-)

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24
    Nel mio programma ho inserito le nuove righe in questo modo:

    #include <zlib.h>

    gzFile *fili;
    char nomef[132];
    ...
    ..
    ..
    ..
    fili=gzopen(nomef,"r");

    e' corretta come sintassi oppure c'e' qualche cosa che non va?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Sembra di sì ... ma hai errori? Se li hai, dicceli ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24
    mi da il classico "Segmentation fault"..

    Solo che non capisco!!
    Ho cambiato solo quelle righe che ho scritto sopra!!

    Il medesimo programma con le istruzioni per leggere un file NON zippato funziona, la copia invece dove ho sostituito quelle righe mi da quel errore..

    C'e' qualche cosa che mi sfugge nei comandi della libreria zlib.h


  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24
    Per essere piu' chiaro, ho sostituito:

    FILE *fili;

    con

    gzFile *fili;

    e poi


    fili=fopen(nomef,"r");

    con

    fili=gzopen(nomef,"r");

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24
    Ho trovato l'errore...... :-)!!!!

    Ora pero' ho un problema su questa parte..

    strcpy(nomef,argv[1]);
    fili=gzopen("nomef","r");
    if(fili<=0){
    printf("-E- This file can't be opened!\n");
    exit(1);
    }

    Se provo ad eseguire il programma su un file.gz mi restituisce l'errore che il file non puo' essere aperto!!!!

    Come lavora la funzione gzopen?????

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    nomef non "nomef"
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    24
    Ciao Oregon,

    se metto nomef al posto di "nomef" mi da l'errore di "Segmentation fault"..

    Dov'e' l'inghippo??

    Come funziona gzopen rispetto a fopen??

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.