LINUX C获取图片数据失败原因
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,char buffer[1024]={0};char p = malloc(1024300);char *q = p;printf("---p: %p, q: %p--- \n", p, q); //
千家信息网最后更新 2024年11月27日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安全错误
数据库的锁怎样保障安全
宝山区辅助软件开发多少钱
普及网络安全知识作文800字
智能排课系统数据库设计
网络安全宣传直播图片
山东双线服务器租用
数据库学生表有哪些字段
政务系统信息网络安全
amd服务器处理器怎么样
mndr数据库
威启网络技术有限公司
互联网资讯与科技
mc 服务器 搭建
媒体算法软件开发
小米自研数据库
网络安全密钥在哪看
中国水稻数据库中心绥研5
数据泵导入数据库 指定用户
数据库 小区物业管理系统
博雅数据库安徽2013
电脑软件开发及销售
佛山市禅城区跑跑网络技术工作室
网络技术与通信工程就业方向
机关网络安全培训资料
专升本计算机数据库是什么科目
凡科服务器配置
加拿大租房软件开发
禹城鸿兴源网络技术有限公司
mndr数据库
组态软件开发版和运行版
pc网络安全隔离卡g-d