chdir()はシェルを終了した後にディレクトリを変更しません。

chdir()はシェルを終了した後にディレクトリを変更しません。

C私のプロジェクトディレクトリを変更する簡単なプログラムを作成したいと思います。その内容は次のとおりです。

#include <unistd.h>
int main()
{
    chdir("/home/enedil/projects/algo");
    return 0;
}

次のコマンドでコンパイルしました(pro.cファイル名はです)。

gcc pro.c -o /usr/local/bin/pro

エラーや警告はありません。しかし、実行してみるとそうです。いいえディレクトリを変更します。なぜ?

ベストアンサー1

あなたのプログラムはあなたの指示に従って正確に行われます。つまり、作業ディレクトリを変更します。それ自体到着する/home/enedil/projects/algo。でも、いったん出たら、シェル作業ディレクトリが復元されました。

私の考えでは、あなたが達成したいのは簡単ですcd方法しかし、著者が言ったようにしないでください。

おすすめ記事