我有一个已经使用多年的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
的人.
值得怀疑的是,当您在这里需要一些字节时,内存会耗尽。
我假设错误消息不正确或至少具有误导性;我的第一个猜测是,在任何上下文中运行任何system
调用都会遇到问题 - 可能是授权,或者不支持,等等。
尝试创建一个简单的程序,其中没有任何内容,只是一个系统调用。如果已经失败,您就知道问题不在于您的程序。