Почему system () жалуется, что cwd не известен? - PullRequest
0 голосов
/ 04 января 2011

Я использую 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 Ответ

2 голосов
/ 04 января 2011

По-видимому, это произошло из-за наличия каталога, который теперь отсутствует в моем стеке pushd, хотя это и не был текущий рабочий каталог. Очистка моего стека пропавшего каталога привела к удалению сообщений.

...