さて、私はここSOや他の多くの場所で膨大な量の答えを読みましたが、この単純な機能を理解できないようです。私は8年以上c/c ++コードを実行しておらず、再学習を非常に試みているので、しばらくお待ちください...
値をシフトして関数paramを介して文字列を割り当てることから、値を直接返すことまで、これを行うためのさまざまな方法を試しましたが、しばらくの間は何も機能しないようです。コンパイル時にもエラーは発生しませんが、実行時にsegfaultsが発生します。次の関数が機能しない理由を知りたいのですが...elseがchar*content型として正常に返される理由がわかりませんが、strcat(content、line); ではない。strcatのマニュアルページには、strcatの定義は(char * DEST、const char * SRC)である必要があることが示されていますが。私が現在理解しているように、while内のline変数のconst charにキャストしようとすると、ポインターに整数が返されます。だから私はここで困惑していて、時間のある人たちに教育を受けたいです!
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;
}
この投稿のすべての素晴らしい答えに感謝します。ディスカッションの全員にチェックマークを付けますが、残念ながらできません...