Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28

Discussione: Scrittura su file C

  1. #1

    Scrittura su file C

    Ciao,
    Ho scritto un ccodice che legge dei valori da un server e poi man mano che li legge li scrive su un file.
    A un certo punto , man mano che legge, la scrittura si interrompe, e entra nel ciclo di controllo del file, cioè in questo ciclo di controllo:
    fprintf(stream,"%s",temp);
    #ifdef DEBUG
    printf("Scrivo su file");
    #endif
    // ciclo di controllo sul file
    if (fopen("NTC.dat", "w+") == NULL)
    {
    printf("I can write the file %s\n");
    return -1;

    }
    e quindi chiude la connessione .
    Non riesco a capire quale sia il motivo, dato che questo pezzo di codice è inserito all'interno si un for infinito che si stoppa solo se si preme Ctrl-C

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    FILE* fp;
    if ((fp=fopen("NTC.dat", "w+")) == NULL)

  3. #3
    Scusa ma che risposta è...???
    Certo che ho messo quello che scrivi tu all'inzio, infatti ho scritto solo il pezzo di codice che dovrebbe darmi errore.

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    No tu hai scritto:
    codice:
    fprintf(stream,"%s",temp);
    #ifdef DEBUG
    printf("Scrivo su file");
    #endif
    // ciclo di controllo sul file
    if (fopen("NTC.dat", "w+") == NULL)
    {
    printf("I can write the file %s\n");
    return -1;
    }
    non
    codice:
    fprintf(stream,"%s",temp);
    #ifdef DEBUG
    printf("Scrivo su file");
    #endif
    // ciclo di controllo sul file
    if ((fp=fopen("NTC.dat", "w+")) == NULL)
    {
    printf("I can write the file %s\n");
    return -1;
    }  else {
    fclose(fp);
    }
    In pratica apri il file e non hai modo di chiuderlo se viene aperto. E i file descriptor non sono infiniti. Altro di strano non appare in quel codice.

  5. #5
    Il file lo chiudo.
    Dopo che chiudo anche il socket chiudo il file.
    Comunque io avevo postato solo un pezzo di codice e non tutto, mi dispiace se ha creato confusione.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Originariamente inviato da AMRITA1979
    Comunque io avevo postato solo un pezzo di codice e non tutto, mi dispiace se ha creato confusione.
    E allora postalo tutto, perche' in effetti, c'e' un po' di confusione ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Io lo potrei postare tutto, ma sono quasi 300 righe di codice..........

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Forse tutto no ... ma comprenderai che se non chiarisci un po', non ti si puo' dare una mano.

    In effetti ho delle perplessita' ...

    1) in printf("I can write the file %s\n");

    visualizzi un valore stringa che non c'e' ...

    2) se la fopen in

    if (fopen("NTC.dat", "w+") == NULL)

    riesce ad aprire il file, dov'e' la variabile in cui conservi l'handle del file aperto?

    3) quando scrivi

    A un certo punto , man mano che legge, la scrittura si interrompe, e entra nel ciclo di controllo del file, cioè in questo ciclo di controllo:
    non si puo' sapere perche' la lettura si interrompe se almeno non mostri la parte di codice che legge ... ne' come il codice potrebbe entrare nel "ciclo di controllo" ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Manca l'argomento:
    codice:
    printf("I can write the file %s\n");

  10. #10
    Come minimo non funziona perché:
    1. Butti via il risultato della fopen;
    2. Sbagli gli argomenti della printf;

    Se anche funzionasse, in caso d'errore runtime cerchi di scrivere "I can write the" al posto di "I can't write to".
    Quattro erroracci in quattro righe di codice non sono male. Chissà nelle altre trecento!

    ;-)

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.