我正在使用system()从我的应用程序运行一些Unix命令,代码如下:
std::stringstream command;
command << "rm -rf /some/directory";
int rmResult = system(command.str().c_str());
if (rmResult != 0) {
clog << "Error: Failed to remove old output directory '" << command.str()
<< "' (" << errno << ") " << strerror(errno) << ".\n";
throw;
}
然而,当rmResult为零并且rm正常工作时,我在控制台中收到此错误:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
我做错了什么,怎样才能让这条消息消失?
答案 0 :(得分:2)
显然,这是因为我的pushd堆栈上有一个目录,即使它不是当前的工作目录。清理掉现在已经消失的目录的堆栈,导致消息消失。