Я использую систему() для запуска команд некоторых Unix из моего приложения с кодом, как следующее:Почему система() жалуется, что cwd неизвестен?
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 равна нуль, а ют работаю, я получаю эту ошибку в консоли:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Что я делаю неправильно, и как я могу заставить это сообщение уйти?
Почему вы так делаете это в первую очередь? Почему бы просто не использовать собственные конструкты для вставки каталога и его содержимого? – richo
Я делаю кучу разных команд, поэтому просто проще использовать system(). – WilliamKF
Если вы создаете скрипт оболочки, почему бы не использовать сценарий оболочки? – dreamlax