LINUX C获取图片数据失败原因
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,char buffer[1024]={0};char p = malloc(1024300);char *q = p;printf("---p: %p, q: %p--- \n", p, q); //
千家信息网最后更新 2026年11月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安全错误
数据库的锁怎样保障安全
科技互联网龙头
互联网为科技
易互联网科技有限公司
北京互联网络科技有限公司
善班互联网科技有限公司
互联网科技公司有风险吗
互联网公司黑科技创始人
企晟互联网信息科技有限公司
区块链结合互联网科技
滨湖区互联网智能科技产品有哪些
无锡工业互联网科技有限公司
智帮互联网科技公司最近动向
珠海东科互联网科技有限公司
保山互联网科技靠谱吗
广西泛欧互联网科技有限公司
第三届互联网大会安防黑科技
网互联网络科技
知域互联网科技有限公司官网
前海云享互联网科技
科技发展第三阶段互联网时代
上海挚品互联网科技
互联网科技公司怎么样
互联网科技大会
互联网科技公司介绍
科技伦理 互联网公司
新华互联网科技校企合作
迪庆互联网科技招生
美国互联网科技公司
互联网相关科技技术
互联网科技职业技能培训学校