LINUX C获取图片数据失败原因
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,char buffer[1024]={0};char p = malloc(1024300);char *q = p;printf("---p: %p, q: %p--- \n", p, q); //
千家信息网最后更新 2025年12月02日LINUX C获取图片数据失败原因
char buffer[1024]={0};
char p = malloc(1024300);
char *q = p;
printf("---p: %p, q: %p--- \n", p, q); //打印查看p ,q地址
unsigned int recvsize = 0;
while(1)
{
int ret = read(sockfd, buffer, 1024); //获取服务器的信息
if(ret <= 0) break;
memcpy(q, buffer, ret); //拷贝数据
q+=ret; //地址偏移
recvsize+= ret; //总字节
memset(buffer, 0, sizeof(buffer)); //清空内存,为下次写入准备
}
printf("ED---p: %p, q: %p--- \n", p, q); //打印地址信息
q = strstr(p, "r\n\r\n")+4; //ERROR /* q = strstr(p, "\r\n\r\n")+4; // TRUE 偏移指针 获取"\r\n\r\n"后面的图片有效数据*/printf("RED---p: %p, q: %p--- \n", p, q);
printf("recvsize:%d\n", recvsize);
FILE*file = fopen(pic, "w+");
fwrite(q, recvsize-(q-p), 1, file);
fclose(file);
free(p);
运行结果:原因分析:
请求格式是以"\r\n\r\n"结束,而 q = strstr(p, "r\n\r\n")+4; 少了个'\', 因此strstr返回NULL, 因此,q的地址为0x4;所以一直无法为后面的操作提供有效的图片数据
地址
数据
图片
有效
信息
偏移
原因
内存
原因分析
字节
拷贝
指针
服务器
格式
结果
准备
分析
服务
运行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
滨州企业软件开发价格
深圳服务器系统集成哪家靠谱
襄阳软件开发软件公司
网络安全市场需要什么
青浦区海航软件开发口碑推荐
服务器噪音低于40分贝
网络安全是不是网络信息系统
网络安全薪酬
网络安全防控常态
市商务局网络安全大核查
数据库如何复制一个表
宝山区参考软件开发联系方式
国际服务器数量
大众网络安全认证
如何恢复备份的数据库
理正怎么数据库
数据库数据太多怎么降低扫描量
科大讯飞软件开发应届生
数据库应用使用
网络技术寻人公司
软件开发mac比win好用么
js 打印服务器上文件
电脑服务器密码不对怎么办
网络安全教育电子稿板
2008域服务器迁移
大学数据库课程总结与体会
软件开发 绩效检讨
中国文化名人档案数据库
维护铁路网络安全
moba 视野 服务器