Windows 等价于 sys/mman.h
Windows Equivalent for sys/mman.h
我尝试在 Win64 上编译我的 C 代码时遇到问题。更具体地说,编译器找不到 sys/mman.h
header,我知道它只在 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;
}
您应该查看 mman-win32 library. But as @Mgetz pointed out, a more simple way is to look at the VirtualAllocEx
函数并尝试调整您的代码。
我尝试在 Win64 上编译我的 C 代码时遇到问题。更具体地说,编译器找不到 sys/mman.h
header,我知道它只在 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;
}
您应该查看 mman-win32 library. But as @Mgetz pointed out, a more simple way is to look at the VirtualAllocEx
函数并尝试调整您的代码。