порт getrlimits / setrlimit на окнах - PullRequest
0 голосов
/ 21 сентября 2018

Я ищу способ портирования функциональности POSIX getrlimits / setrlimit в Windows.

Наше приложение иногда сталкивается с очень глубокой рекурсией, и достигается предел стека по умолчанию, что приводит к переполнению стека.

Чтобы не допустить этого, мы написали следующий фрагмент кода:

struct rlimit rl;
int error = getrlimit(RLIMIT_STACK, &rl);
if (!error) 
{
  rl.rlim_cur = rl.rlim_max;
  error = setrlimit(RLIMIT_STACK, &rl);
}

По сути, мы устанавливаем здесь максимальное ограничение для стека.

Теперь я пытаюсь перенести этот код в Windows, используя minGW (кросс-компилирование для Windows в Linux)

Я искал, но не смог найти способ сделать это из кода.

Я обнаружил флаг компоновщика "--stack", который можно использовать как:

mingw32-g ++ -Wl, - stack, -o file.exe file.c

Но я не уверен, смогу ли я столкнуться с некоторыми проблемами с этим использованием в долгосрочной перспективе (например, установка предела стека для всего приложения против определенного фрагмента кода)

Что бы я предпочел болееЭто решение может быть одним из следующих:

  1. Независимый от платформы способ установки предела стека или
  2. Способ установки предела стека в Window из кода.
...