Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [c] Aiuto su puntatori a FILE

    Buonasera a tutti! Cerco un aiuto per il seguente codice... Praticamente vorrei salvare su un file un flag per segnalare al programma stesso se questo sia stato lanciato già altre volte in modo da non richiedere la registrazione di un account amministratore... In teoria pensavo che non riuscendo ad aprire il file in lettura (se è la prima volta che eseguo il programma) il primo if è soddisfatto quindi rientro nel secondo... stranamente non riesce a creare il file! Premetto che se provo a commentare tutto e lascio solo "file = fopen(CONFIG, "w")" il file viene creato tranquillamente... Chiedevo dunque (visto che su windows un codice molto simile mi andava alla grande, ma adesso sono su ubuntu con gcc perchè lunedì ho un esame)... Quale può essere l'errore? Grazie in anticipo, Giuseppe..

    codice:
    #define CONFIG "/home/giuseppe/Orale/config.dat"
    /*
        main e codice vario...
    */
    int lcf(){
        FILE *file;
        int j;
        if ((file = fopen(CONFIG, "r")) == NULL){
            if((file = fopen(CONFIG, "W")) == NULL){
                printf(ERROR2);
                return -1;        
            } else {
                fprintf(file, "%d", 1);
                fclose(file);
                return 0;
            }
        } else {
            fscanf(file, "%d", &j);
            j +=1;
            file = fopen(CONFIG, "w");
            fprintf(file, "%d", j);
            fclose(file);
            return j;
        }
    }

  2. #2
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Su linux, se cambi quel "W" in "w" funziona... crea il file alla prima esecuzione e salva il valore 1. Alla seconda esecuzione, aggiunge 1 al valore precedentemente salvato.
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  3. #3
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Quote Originariamente inviata da infinitejustice Visualizza il messaggio
    Su linux, se cambi quel "W" in "w" funziona... crea il file alla prima esecuzione e salva il valore 1. Alla seconda esecuzione, aggiunge 1 al valore precedentemente salvato.
    In verità w apre il file e lo tronca se esiste. Lo crea se non esiste.
    http://www.cplusplus.com/reference/cstdio/fopen/
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  4. #4
    Quote Originariamente inviata da infinitejustice Visualizza il messaggio
    Su linux, se cambi quel "W" in "w" funziona... crea il file alla prima esecuzione e salva il valore 1. Alla seconda esecuzione, aggiunge 1 al valore precedentemente salvato.
    Risolto per caso riscrivendo tutto... l'errore era solo quella maledetta w maiuscola! grazie lo stesso!

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.