私はCで書かれたある種のファイル共有プログラムに取り組んでいます。データファイルを読み取ってデータを文字列に保存し、この文字列をメイン関数に返し、メイン関数がクライアントに送り返す関数があります。コードを以下に示します
char* ListFiles(){
FILE *fp;
char file[30];
char *f;
if((fp=fopen("list","r"))==NULL)
{
...
}
while (!feof(fp))
{
fgets(file,50,fp);
}
fclose(fp);
f=file;
printf("%s",f); //get display!!!
return f;
}
int main(){
char *files;
...
...
files=ListFiles();
printf("%s",files); //nothing display!!
sent();
}
ただし、この方法は機能しません。何も表示されず、もちろん何も送信されません。しかし、関数 ListFiles() で正しい表示が得られます。何が起こるかわかりません。strcpy() も使用していますが、まだ機能しません。