sys/mman. h的Windows等效函数

piah890a  于 2023-02-13  发布在  Windows
关注(0)|答案(2)|浏览(476)

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

kmb7vmvb1#

你应该看看mman-win32 library,但是正如@Mgetz指出的,一个更简单的方法是看看VirtualAllocEx函数,并尝试修改你的代码。

dsekswqp

dsekswqp2#

我可以通过在cygwin下使用g来解决这个问题,确保g来自cygwin安装(安装程序指定的相同版本),而不是windows下的当前编译器。

相关问题