Код C ++ не работает в AWS с ошибкой «невозможно выделить память» при использовании системы (команда) - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть код C ++, который использовался в течение многих лет.Недавно я положил его в AWS, но не удалось с ошибкой.Я обнаружил ошибку и обнаружил, что следующий код вызвал ошибку.

string command = "echo hello";
int ret = std::system(command.c_str());
if (ret != 0)
{
    cout << strerror(errno);        
    return false;
}

Сообщение об ошибке: cannot allocate memory.system(command) вызывается в моей основной программе, которая потребляет много памяти.Я много раз искал system и такой провал.У некоторых других людей была такая же ошибка.Многие предлагают использовать эквивалентность system, а некоторые говорят, что можно выработать собственную эквивалентность system.Я буду признателен всем, кто может предоставить эквивалент system.

1 Ответ

0 голосов
/ 24 апреля 2019

Сомнительно, что память исчерпывается именно тогда, когда вам нужно несколько байтов здесь.
Я бы предположил, что сообщение об ошибке неверно или, по крайней мере, вводит в заблуждение;Мое первое предположение состоит в том, что у вас возникнет проблема с выполнением любых вызовов system в любом контексте - может быть, авторизация или не поддерживается, или что-то подобное.

Попробуйте создать простую программу, в которой ничего нет, простосистемный вызов.Если это уже не помогает, вы знаете, что проблема не в вашей программе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...