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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用system(命令)时,AWS中的C ++代码失败并显示错误“无法分配内存”相关的知识,希望对你有一定的参考价值。

我有一个已经使用了很多年的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调用都会遇到问题 - 可能是授权,或者不支持,或者等等。

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

以上是关于使用system(命令)时,AWS中的C ++代码失败并显示错误“无法分配内存”的主要内容,如果未能解决你的问题,请参考以下文章

使用非常大的字符串时C#中的内存泄漏

“复制了无效的路径 0 文件”使用 xcopy 命令时出错

c语言中啥指令可以关闭dos窗口

仅当我在代码中放置断点时,才能使用C#删除存储过程的参数

使用 C++11 时列表中的编译错误

每当我使用gem命令时,为什么Ruby会抛出语法错误?