我正在尝试使用mmap按1024字节的块读取文件。
下面是代码片段...
numberOfBuffers = filesize / buffersize;
if (filesize % buffersize)
{
numberOfBuffers++;
}
for (i = 0; i < numberOfBuffers; i++) {
if((map = mmap(NULL, buffersize, PROT_READ, MAP_PRIVATE, fd, i * buffersize)) == MAP_FAILED) {
perror("map failed");
}
if(munmap(map, buffersize) == -1) {
perror("unmap failed");
}
}
在第二次迭代时,我遇到了“非法参数”错误。
我正在尝试了解mmap,并寻求有关如何使用定义的缓冲区大小迭代mmap的帮助。
if (numberOfBuffers % buffersize)
应该改成if (fileSize % buffersize)
。 - MByD