使用 system(命令) 时,C++代码在 AWS 中失败,并出现错误"cannot allocate memory"



我有一个已经使用多年的C++代码。最近我把它放在AWS中,但失败了。我找到了错误,发现以下代码导致了失败。

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

错误消息是 cannot allocate memorysystem(command)在我的主程序中调用,这会消耗大量内存。我已经对system和这样的失败做了很多搜索。其他一些人也有同样的错误。许多人建议使用system的等价性,有些人说一个人可以发展自己的等价system。我将不胜感激任何可以提供等效system的人.

值得怀疑的是,当您在这里需要一些字节时,内存会耗尽。
我假设错误消息不正确或至少具有误导性;我的第一个猜测是,在任何上下文中运行任何system调用都会遇到问题 - 可能是授权,或者不支持,等等。

尝试创建一个简单的程序,其中没有任何内容,只是一个系统调用。如果已经失败,您就知道问题不在于您的程序。

相关内容

最新更新