fwrite尚未完成写入文件

问题描述

尝试将文件从客户端发送到服务器。

这是我收到的方式:

printf("Server receiving file...\n");
while((bytes_read = read(sd,buf,sizeof(buf))) > 0){ //second read Now retrieving the file size
  printf("writing");
  fwrite(buf,1,bytes_read,fp);
  printf("checking if reached here");
}

由于某种原因,第二条打印语句“检查是否到达此处”从未到达,并且程序只是没有退出循环。可能是什么问题?

PS。我的客户端发送所有字节,因此发送没有问题。它只是写入文件

解决方法

套接字是否被阻止(默认设置)?

如果是,则每当没有要读取的数据时,read()将挂起,等待 更多数据(或关闭套接字,在这种情况下,它将返回0个字节)。

,

您是否使用fopen函数打开了文件? 这是一个有关您应该在脚本中某处放置一段代码的小示例。

fp = fopen( "file","w" );

检查某处是否有类似的行,否则需要添加它。