Итак, мне нужно прочитать весь файл в строке в c, я не знаю, насколько большим будет файл. Я написал эту функцию, но она не работает:
int slurp(char * filepath, char * outputfile) {
fp = fopen(filepath, "r");
int success = 0;
if (fp == NULL) {
success = 1;
}
if (success == 0) {
fseek(fp, 0, SEEK_END);
outputfile = (char *) calloc(ftell(fp) + 1, sizeof(char));
fread(outputfile, ftell(fp), sizeof(char), fp);
fseek(fp, 0, SEEK_SET);
outputfile[ftell(fp)] = '\0';
}
return success;
}
Ошибка при открытии файла не возникает, но когда я распечатываю выходной файл, я получаю только (null).
Почему не это работает? Спасибо.
Я попробовал ваши предложения, но все равно не работает:
int slurp(char * filepath, char * outputfile) {
fp = fopen(filepath, "r");
int success = 0;
if (fp == NULL) {
success = 1;
}
if (success == 0) {
fseek(fp, 0, SEEK_END);
size_of_file = ftell(fp);
fseek(fp, 0, SEEK_SET);
outputfile = (char *) calloc(size_of_file + 1, sizeof(char));
fread(outputfile, size_of_file, sizeof(char), fp);
outputfile[size_of_file] = '\0';
}
return success;
}