2010-11-15 5 views

Répondre

19
#include <stdio.h> 

void adx_store_data(const char *filepath, const char *data) 
{ 
    FILE *fp = fopen(filepath, "ab"); 
    if (fp != NULL) 
    { 
     fputs(data, fp); 
     fclose(fp); 
    } 
} 
1

Quelque chose comme ça devrait le faire:

#include <stdio.h> 
: : : 
int adxStoreData (char *filepath, char *data) { 
    int rc = 0; 

    FILE *fOut = fopen (filepath, "ab+"); 
    if (fOut != NULL) { 
     if (fputs (data, fOut) != EOF) { 
      rc = 1; 
     } 
     fclose (fOut); // or for the paranoid: if (fclose (fOut) == EOF) rc = 0; 
    } 

    return rc; 
} 

Il vérifie diverses conditions d'erreur telles que fichier problèmes d'E/S et retourne 1 (vrai) si bien, 0 (false) autrement . C'est probablement quelque chose que vous devriez faire, même en PHP.

+2

que diriez-vous du fclose (fOut)! = EOF? ;-) –

+1

et peut-être qu'il devrait y avoir aussi des assertions sur les chemins de fichier et les données pour s'assurer que ni NULL ne soit? ;-) –

+2

Vérifier que 'fclose()' n'est pas seulement de la paranoïa. La sortie est généralement tamponnée; il est probable que rien ne sera réellement écrit dans le fichier avant l'appel 'fclose()'. –

Questions connexes