问题描述
我在操作系统课上不时遇到这个问题,但是教授没有解释,我也无法在网上找到确切的解释。 mmap
中偏移量的用途是什么?这也适用于Linux
谢谢
解决方法
它使您可以映射文件的一部分,该部分不一定从头开始。
所以
fd = open("/path/to/myfile",O_RDONLY);
ptr = mmap(NULL,8192,PROT_READ,MAP_PRIVATE,fd,4096);
会将文件的字节4096-12287映射到内存中,并返回一个指向它们所映射地址的指针。
例如,这在加载共享库时很有用。该文件的某些部分可能是标头或调试信息,您不需要将其映射到内存中。