Я работаю над проектом и сталкиваюсь с небольшой проблемой. Он разработан как простая оболочка, и прямо сейчас я работаю над вводом встроенных команд (pwd, cd, exit). У меня есть все, кроме компакт-диска.chdir в пользовательской оболочке в Unix
разбора работа, и различные сегменты команды и аргументов помещаются в массив, так что теперь у меня есть это:
void cd()
{
chdir(commands[1].c_str());
reset();
}
Я бег, что с правильным путем, который находится в этой директории , но он не меняется. Что мне не хватает?
Спасибо!
Если он не работает, проверьте статус возврата 'chdir' и' errno', который скажет вам, что не так. У вас есть разрешения на выполнение в каталоге, к которому вы работаете cd'ing? –
@MichaelAlbers Просто попробовал это, добавил заголовок errno.h и добавил cout для него в этой же функции, ничего не получилось, так что не выглядело так, что я получаю какие-либо ошибки где угодно. И никаких предупреждений о компиляции, что все отлично работает – timgregoire
Что значит «ничего не получилось»? По определению chdir возвращает int. Вы имеете в виду, что он вернулся ноль? Откуда вы знаете, что каталог не меняется? –