Segmentation fault (core dumped)

sandy-lcq sandy-lcq 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面这段代码, 从fd_r文件的内容接到outputfileFd文件(前面已经打开并写入部分内容)后面,现在是走到memcpy处就段错误,看样子像是p_w p_r指针不可操作,一操作就挂掉了。求指教,没看出代码有啥问题啊?

fd_r = open(infile, O_RDWR);
length_r = lseek(fd_r,0,SEEK_END);
filesizesum += length_r;

off_write = lseek(outputfileFd,0,SEEK_CUR);

lseek(fd_r,0,SEEK_SET);

while(1)
{
p_r = (char*)mmap(NULL,BUF_SIZE,PROT_READ|PROT_WRITE,MAP_SHARED,fd_r,off);
p_w = (char*)mmap(NULL,BUF_SIZE,PROT_WRITE,MAP_SHARED,outputfileFd,off_write);

memcpy(p_w,p_r,BUF_SIZE);
off += BUF_SIZE;
off_write += BUF_SIZE;

if((off+BUF_SIZE) >= length_r)
{
p_r = (char*)mmap(NULL,length_r - off ,PROT_READ|PROT_WRITE,MAP_SHARED,fd_r,off);
p_w = (char*)mmap(NULL,length_r - off,PROT_WRITE,MAP_SHARED,outputfileFd,off_write);
memcpy(p_w,p_r,length_r -off );
munmap(p_r,length_r - off);
munmap(p_w,length_r - off);
break;
}
}
...全文
评论
收藏 已收藏
分享
返回顶部
sandy-lcq
Linux/Unix社区 23,224 成员 74,535 内容