使用system(命令)时,AWS中的C ++代码失败并显示错误“无法分配内存”

问题描述 投票:0回答:1

我有一个已经使用了很多年的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等效性的任何人。

c++ linux system
1个回答
0
投票

当你需要一些字节时,内存就完全耗尽是值得怀疑的。 我认为错误信息不正确或至少具有误导性;我的第一个猜测是,在任何情况下运行任何system调用都会遇到问题 - 可能是授权,或者不支持,或者等等。

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

© www.soinside.com 2019 - 2024. All rights reserved.