2010-11-15 24 views

cevap

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

şey yapmalı:

#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; 
} 

Böyle dosyası I/O problemleri gibi çeşitli hata koşullarını kontrol eder ve aksi tamam eğer 0 (yanlış) 1 (doğru) döndürür . Bu muhtemelen 'un PHP'de bile yapması gereken bir şeydir.

+2

fclose (fOut)! = EOF hakkında ne dersiniz? ;-) –

+1

ve belki de NULL olmadığından emin olmak için dosya yolu ve veri üzerinde bazı ipuçları olmalıdır? ;-) –

+2

Başarısız olan fclose() öğesinin yalnızca paranoya olup olmadığını kontrol etme. Çıktı tipik olarak tamponlanır; Muhtemelen dosyaya 'fclose()' çağrısına kadar hiçbir şey yazılmayacaktır. –

İlgili konular