18,356
社区成员
发帖
与我相关
我的任务
分享
void do_write(int s,char *buf,int len)
{
int retcount;
do{
retcount = write(s,buf,len);
buf += retcount;
len -= retcount;
}while(len > 0);
}
void transmit()
{
int fd;
int sd = file_info.sd;
int read_count,read_sum = 0;
char *buf = (char*)malloc(102500);
fd = file_info.fd = open(file_info.path,O_WRONLY | O_CREAT | O_TRUNC,0666);
if(fd < 0){
printf("local file open error\n");
exit(1);
}
while(read_sum < file_info.size){//file_info.size为下载文件的大小
read_count = read(sd,buf,102400);
do_write(fd,buf,read_count);
read_sum += read_count;
}
printf("read_sum:%d\n",read_sum);
printf("file size:%d\n",file_info.size);
free(buf);
}