2

Fedora Linux x86_64 (4G RAM と 16G スワップ) で 1TB の匿名ファイルを mmap しようとしています。しかし、私は ENOMEM 「メモリを割り当てることができません」と、次のコードのように 32G を取得しました。何か不足していますか?手がかりに感謝します。

#define HEAP_SIZE (1UL << 35)
int main()
{
    void *addr = mmap(0, HEAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);
    if (addr == MAP_FAILED)
    {
        perror(NULL);
        return 1;
    }
    printf("mmap %d gbytes succeed\n", HEAP_SIZE/(1UL << 30));
    return 0;
}
4

1 に答える 1