2010-11-15 2 views

ответ

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

Что-то вроде этого следует сделать это:

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

Он проверяет различные условия ошибки, такие как проблемы ввода/вывода файла и возвращает 1 (истина), если все в порядке, 0 (ложь) в противном случае , Вероятно, это вам должно быть, даже в PHP.

+2

Как насчет fclose (fOut)! = EOF? ;-) –

+1

и, возможно, также должны быть некоторые утверждения по файловому пути и данным, чтобы удостовериться, что ни один из них не равен NULL? ;-) –

+2

Проверка того, удалось ли 'fclose()' выполнить не просто паранойю. Вывод обычно буферизуется; скорее всего, ничего не будет записано в файл до вызова 'fclose()'. –