Windows 等效于 sys/mman.h

you*_*his 4 c windows porting memory-management

尝试在 Win64 上编译我的 C 代码时遇到问题。更具体地说,编译器找不到sys/mman.h头文件,据我所知,它只能在 Unix 环境中找到。

我已经知道这是处理内存分配。

我可以使用 Windows 的等价物来移植代码(第一次尝试)?

导致问题的代码:

/* Allocate memory required by processes */
buf = (int*) malloc (sizeof(int));
if (!buf)
{
    perror("Error");
    free (buf);
    return -3;
}

/* Lock down pages mapped to processes */
puts("Locking down processes.");
if(mlockall (MCL_CURRENT | MCL_FUTURE) < 0)
{
    perror("mlockall");
    free (buf);
    return -4;
}
Run Code Online (Sandbox Code Playgroud)

Mek*_*kap 6

您应该查看mman-win32 库。但正如@Mgetz 指出的那样,更简单的方法是查看VirtualAllocEx函数并尝试调整您的代码。