chdir в пользовательской оболочке в Unix

Я работаю над проектом и сталкиваюсь с небольшой проблемой. Он разработан для простой оболочки, и сейчас я работаю над вводом встроенных команд (pwd, cd, exit). У меня все кроме CD работает.

Разбор работает, и различные сегменты команды и аргументов помещаются в массив, так что сейчас у меня есть это:

void cd()
{
chdir(commands[1].c_str());

reset();
}

Я запускаю его с правильным путем, который находится в этом каталоге, но он не меняется. Что мне не хватает?

Спасибо!

0

Решение

Вы комментарий:

Может сказать, каталог не меняется, потому что сразу после, когда я запускаю PWD, (getenv("PWD")), он по-прежнему показывает исходный каталог, в котором была запущена программа.

Вы проверяете текущий рабочий каталог неправильно. Увидеть chdir () не влияет на переменную окружения PWD

Вместо того, чтобы использовать getenv("PWD") использование getcwd,

3

Другие решения

Других решений пока нет …