我正在尝试将文本文件复制到缓冲区以便通过套接字发送它。只要文本文件没有任何换行符(或 \n),文件就会成功复制到缓冲区中。但是,每当文本文件中有多行时,我都会收到错误消息"Unable to copy file into buffer"。
下面是代码片段:
//=====================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);
注意: 如果文本文件不包含新行,则代码可以正常工作。