Windows等效于sys / mman.h

时间:2015-04-15 20:41:15

标签: c windows memory-management porting

我尝试在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;
}

1 个答案:

答案 0 :(得分:3)

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