Я сталкиваюсь с проблемами при попытке скомпилировать свой код C на Win64. Более конкретно, компилятор не может найти заголовок sys/mman.h
, который, как я понимаю, находится только в средах Unix.Эквивалент Windows для sys/mman.h
Я уже знаю, что это касается распределения памяти.
Есть ли эквивалент для 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;
}
не напрямую, WINAPI имеет свои собственные функции, которые входят в состав 'windows.h', которые выполняют одни и те же функции, но эти функции являются только POSIX и недоступны в Windows. Поэтому на заданный вопрос не может быть дан ответ, потому что нет эквивалентного заголовка. – Mgetz
@Mgetz, хотя я согласен, что изначально это не так, библиотека win32, связанная в моем ответе, должна делать трюк. – Mekap
@Mekap, или они могут просто сделать это на родном пути с помощью ['VirtualAllocEx'] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa366890 (v = vs.85) .aspx) и кузены – Mgetz