Хорошо, я прочитал огромное количество ответов здесь, на SO, и во многих других местах, но я просто не могу понять эту простую функцию. Пожалуйста, прости меня за что-то такое простое, что я не делал код на c / c ++ более 8 лет, и я очень стараюсь переучиться, поэтому наберитесь терпения ...
Я пробовал много разных способов сделать это от назначения строки через параметр функции путем смещения значения до простого его возврата, но пока что ничего не работает. Я также не получаю ошибок во время компиляции, но я получаю segfaults во время выполнения. Мне бы очень хотелось выяснить, почему не работает следующая функция ... Я просто не понимаю, почему else возвращает отлично как type char * content, но strcat (content, line); не. Хотя страницы руководства для strcat показывают, что определение strcat должно быть (char * DEST, const char * SRC). Как я сейчас понимаю, попытка выполнить приведение к константному символу в строковой переменной в течение времени просто возвращает целое число указателю. Так что я в тупике и хотел бы получить образование у тех, у кого есть время!
char * getPage(char *filename) {
FILE *pFile;
char *content;
pFile = fopen(filename, "r");
if (pFile != NULL) {
syslog(LOG_INFO,"Reading from:%s",filename);
char line [256];
while (fgets(line, sizeof line, pFile) != NULL) {
syslog(LOG_INFO,">>>>>>>Fail Here<<<<<<<");
strcat(content, line);
}
fclose(pFile);
} else {
content = "<!DOCTYPE html><html lang=\"en-US\"><head><title>Test</title></head><body><h1>Does Work</h1></body></html>";
syslog(LOG_INFO,"Reading from:%s failed, serving static response",filename);
}
return content;
}
Очень ценю все отличные ответы в этом посте. Я бы поставил галочку у всех в обсуждении, но, к сожалению, не могу ...