Я работаю над проектом и сталкиваюсь с небольшой проблемой. Он разработан для простой оболочки, и сейчас я работаю над вводом встроенных команд (pwd, cd, exit). У меня все кроме CD работает.
Разбор работает, и различные сегменты команды и аргументов помещаются в массив, так что сейчас у меня есть это:
void cd()
{
chdir(commands[1].c_str());
reset();
}
Я запускаю его с правильным путем, который находится в этом каталоге, но он не меняется. Что мне не хватает?
Спасибо!
Вы комментарий:
Может сказать, каталог не меняется, потому что сразу после, когда я запускаю PWD, (
getenv("PWD")
), он по-прежнему показывает исходный каталог, в котором была запущена программа.
Вы проверяете текущий рабочий каталог неправильно. Увидеть chdir () не влияет на переменную окружения PWD
Вместо того, чтобы использовать getenv("PWD")
использование getcwd
,
Других решений пока нет …