Я работаю над проектом и столкнулся с небольшой проблемой. Он разработан как простая оболочка, и прямо сейчас я работаю над вводом встроенных команд (pwd, cd, exit). У меня работает все, кроме CD.
Разбор работает, и разные сегменты команды и аргументы помещаются в массив, так что прямо сейчас у меня есть это:
void cd()
{
chdir(commands[1].c_str());
reset();
}
Я запускаю это с допустимым путем, который находится в этом каталоге, но он не меняется. Что мне не хватает?
Спасибо!
chdir
иerrno
, который скажет вам, что не так. У вас есть права на выполнение в каталоге, к которому вы переходите? - person Michael Albers   schedule 16.02.2016chdir()
не влияет на переменные среды вашей оболочки и, следовательно, неPWD
в частности. Обычная оболочка устанавливает значение в$PWD
при выполненииcd
; значение в$PWD
не меняется, пока его не изменит оболочка. - person Jonathan Leffler   schedule 16.02.2016