ソケット経由でテキスト ファイルを送信するために、テキスト ファイルをバッファにコピーしようとしています。テキスト ファイルに改行 (または \n) がなくなるとすぐに、ファイルは正常にバッファーにコピーされます。しかし、テキスト ファイルに複数の行があると、「ファイルをバッファにコピーできません」というエラーが表示されます。
以下はコード スニペットです。
//=====================Sending a File at Socket=========================
FILE *fp = fopen("File.txt", "r+");
char file_buffer[1000];
fseek(fp, 0, SEEK_END);
size_t file_size = ftell(fp); //calculating File Size
fseek(fp, 0, SEEK_SET);
int bytes_read=0;
if((bytes_read=fread(file_buffer, 1, file_size, fp))<=0)
{
MessageBox( NULL,
"Unable to copy file into buffer",
"Error!",
MB_ICONEXCLAMATION |
MB_OK);
exit(1);
}
MessageBox( NULL,
file_buffer,
"File copied in Buffer",
MB_ICONEXCLAMATION |
MB_OK);
注: テキスト ファイルに新しい行が含まれていない場合、コードは問題なく動作します。