C语言下载图片不正确的原因

昨日写程下载网站上的图片,发现接收到的数据和实际数据不一样.经过检查源码,发现原来是数据接收之后使用的复制函数不正确.

1.连接主机

2.发送请求

3.接收数据到缓冲区

4.将缓冲区数据输出

5.断天连接

 

问题出在第4步.第4步原本采用的是strncpy函数.将函数在接收文本文档时正常.但在接收二进制数据时就不正确了,因为里面含有值为零的字符,而此函数据在复制过程中会遇值为零的字符就终止,如果字节数不足长度参数则以零值填充.

二进制数据需要采用memcpy()数来进行复制.

 

posted @ 2016-03-14 12:26  夜梦多离殇  阅读(149)  评论(0)    收藏  举报