为什么system()抱怨cwd不知道?

时间:2011-01-04 03:00:03

标签: c++ system getcwd

我正在使用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

我做错了什么,怎样才能让这条消息消失?

1 个答案:

答案 0 :(得分:2)

显然,这是因为我的pushd堆栈上有一个目录,即使它不是当前的工作目录。清理掉现在已经消失的目录的堆栈,导致消息消失。