LINUX C获取图片数据失败原因
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,char buffer[1024]={0};char p = malloc(1024300);char *q = p;printf("---p: %p, q: %p--- \n", p, q); //
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
rpc服务器打印机错误
学校网络安全教育儿歌
广东发展软件开发推荐货源
高防云服务器代理
ftp远程服务器连接
权属数据库
广州楚越互联网络科技有限公司
服务器上无法访问指定设备
软件开发常用方法
手机连接云数据库吗
工程信息化与计算机网络安全
软件开发最新软件
苏州戴尔服务器类别查看
数据库上机五套考试题
昆明网络安全工程师考试
许昌魏都慕贤网络技术公司
数据库笔试一般会考什么
数据库清除文本框内容代码
盘锦网络安全渗透工程师培训
北京同心互联网科技有限公司
oa审批系统用什么软件开发
中小学生维护网络安全吗
推荐服务器有32k的
win服务器改远程端口
网络文明网络安全主题短片
网络安全工程专业在职研究生
西湖区直播软件开发
盘锦网络安全渗透工程师培训
四川物保宝网络技术有限公司
托盘物流数据库设计