我接下来要做的是:我有一个巨大的文件(超过 4GB)。我想对其进行映射,然后从这个映射的区域缓冲区中获取 128 个字节。我该怎么做?对于 mmap 文件,我使用这个:
int fd = open(file_name, O_RDONLY);
void* addr = mmap(0, /*ULONG_MAX*/100000000, PROT_READ, MAP_SHARED, fd, 0);
在这些字符串之后,我想获得上述缓冲区的描述,但我不知道怎么做,也没有在网上找到它。
附加信息:file_name 是文本文件。它包含字符串
UPD:我将尝试解释:我想对文件进行映射,然后从映射区域中取出 128 个字节(实际上是字符)并将其放入某个缓冲区。现在我使用下一个代码:
char buffer[128];
struct str* addr = mmap(0, /*ULONG_MAX*/128, PROT_READ, MAP_SHARED, fd, 0);
scanf((char*)addr, "%s", buffer);
printf("%s\n", buffer);
但它不起作用。所以我正在寻找解决方案。