我有一个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
调用都会有问题—可能是授权,或者不受支持,或者诸如此类。
尝试创建一个简单的程序,其中没有任何内容,只是一个系统调用。如果已经失败了,你知道问题不在你的程序中。
关于c++ - 使用系统时,C++代码在AWS中失败,并出现错误“无法分配内存”(命令),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55820171/