forkコマンドを使ってディレクトリを変更することはできますか?私は、次のしている私のコードにあまり行かず:cでforkを使ってcdコマンドを使う
childpid = fork();
if (childpid >= 0)
{
if (childpid == 0)
{
ret = execvp(argv[0],argv);
exit(ret);
} else {
waitpid(childpid,&status,0);
ret = WEXITSTATUS(status);
}
}
上記の私がls
、pwd
、などのような基本的なコマンドを入力していたときに正常に動作します..それはCDの機能を使用する方法を実現することが可能です?コマンドcd ..
を入力できますが、何もしません。例えば
私のプログラムが/Users/username/Desktop/
であれば、私はchdir
についてのいくつかのものを見てきましたが、私はありません/Users/username/
に行くか、ストレート/Users
に入ることができるように、このようなcd ..
などのコマンドを使用したいです正確にどのように動作するか/それをどのように使用するか。あなたはchdir
は、現在のプロセスの作業ディレクトリを変更するための最良の方法であるmentionnedとして
カレントディレクトリは各プロセスに固有です。シェルプロセスは/ Users/username/Desktopにあり、 'cd ..'と入力すると新しいプロセスが作成され、新しいプロセスは/ Users/usernameに変更されますが、シェルプロセスはディレクトリを変更したプロセスとは異なるプロセスです。 – immibis