使用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 memory
。 system(command)
在我的主程序中调用,消耗大量内存。我已经做了很多搜索system
和这样的失败。其他一些人也有同样的错误。许多人建议使用system
的等价物,有人说可能会发展自己的system
等价物。我将非常感谢能够提供system
等效性的任何人。
答案
当你需要一些字节时,内存就完全耗尽是值得怀疑的。
我认为错误信息不正确或至少具有误导性;我的第一个猜测是,在任何情况下运行任何system
调用都会遇到问题 - 可能是授权,或者不支持,或者等等。
尝试创建一个没有任何内容的简单程序,只需要系统调用。如果已经失败,您知道问题不在您的程序中。
以上是关于使用system(命令)时,AWS中的C ++代码失败并显示错误“无法分配内存”的主要内容,如果未能解决你的问题,请参考以下文章