MAP_ANONYMOUS
次のように使用して 64MB をマップしようとする mmap() への呼び出しがあります。
void *block = mmap(0, 67108864, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (block == MAP_FAILED)
exit(1);
実際にメモリを所有するには、そのメモリのブロックをヒットする必要があることを理解しています。実際にメモリを所有するために、ある種の 0 または空の文字列を追加したいと考えています。どうすればいいですか?私は次のことを試しましたが、明らかにセグメンテーション違反です(理由はわかっています):
char *temp = block;
for (int i = 0; i < 67108864; i++) {
*temp = '0';
temp++;
}
そのブロックに何かを割り当てることによって、実際にそのブロックの所有権を取得するにはどうすればよいですか?
ありがとう!