映射文件并获取字节值

Map a file and get byte value

我需要映射一个文件然后获取它的字节值(从映射区域)。

我已经映射了文件,像这样:

void* kd_test_mmapw( int d, int size )
{
    void *a = NULL;
    a = mmap( NULL, size, PROT_READ, MAP_SHARED, d, 0 );
    if( a == MAP_FAILED )
    {
        perror( "mmap failed" );
        abort();
    }
    return a;
}

但是我不知道如何获取字节值

a 是指向映射区域第一个字节的指针。您可以将指针视为指向字节数组的指针。

如果要访问 1234 字节,只需使用:

char *asChar = (char*)a;
char myByte = asChar[1233];