В настоящее время я пытаюсь ограничить ресурсы памяти процесса. Прежде чем сделать это, я подготавливаю структуру rlimit64
, вызывающую getrlimit64
. При компиляции следующего кода
rlimit64 as_limit;
if (getrlimit64(RLIMIT_AS, &as_limit) == 0)
{
std::cerr << as_limit.rlim_cur << std::endl;
std::cerr << as_limit.rlim_max << std::endl;
as_limit.rlim_cur = 0x040000000 * 16;
std::cerr << as_limit.rlim_cur << std::endl;
std::cerr << as_limit.rlim_max << std::endl;
}
Я получаю предупреждение о целочисленном переполнении для строки с присвоением as_limit.rlim_cur
. Hovever, в качестве вывода я получаю:
18446744073709551615
18446744073709551615
0
18446744073709551615
Как это возможно?