모의 쉘 프로그램을 설계하고 있는데 "cd"명령을 모방 할 수 없습니다. chdir()을 시도했지만 작동하지 않아 환경 변수 "PWD ="를 변경하려고했습니다.C++ 사용자 입력에서 작업 디렉토리 변경
여기에 제가 가지고있는 것이 있습니다. (내가 틀렸다 또는 가까운 CHDIR에 있다면, 정정 해줘 제발())
else if (command == "cd")
{
string pathEnv = "PWD=";
string newDir;
cin >> newDir;
pathEnv+=newDir;
cout << pathEnv << endl;
putenv(pathEnv.c_str());
}
희망이 명령은 'CD/사용자/사용자 이름/폴더'가 될 것입니다 내 pathEnv 변수가 될 것 "PWD =/user/username/folder "디렉토리를 바꿀 수 있습니까?
어떤 통찰력이라도 대단히 감사합니다.
프로세스의 현재 디렉토리를 변경하는 작업은'chdir()'시스템 호출로 수행됩니다. 환경 변수를 변경해도 환경 변수를 변경하는 것 외에는 다른 작업을 수행하지 않습니다. 'chdir()'에 어떤 문제가 있습니까? –
와우, $ PWD를 바꾸는 것이 좋습니다.^_ ^, chdir(), 그리고 언젠가는 OS 시스템 API의 기초에 대해서 쓰고 있습니다 – zinking
'chdir()'이 얼마나 구체적으로 작동하지 않았습니까? – HighCommander4