Segmentation fault (core dumped)

lcq170 2015-09-15 09:25:15
下面这段代码, 从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;
}
}
...全文
204 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧