Segmentation fault (core dumped)
下面这段代码, 从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;
}
}