20181


ディレクトリを作成するプログラムを書いたのですが実行してもディレクトリができません  
何が間違っていてどんなところに原因があるのかわかりません。。

OS は ubuntu 15.04 です。

[code]

    int main(int argc, char** argv)
    {
        system("cd\n");
        system("mkdir n3\n");
        system("cd n3\n");
        system("mkdir down\n");
    ｝
    
[/code]


CC BY-SA 3.0
2015-12-19T13:48:00.360
20180
2015-12-19T14:20:50.910
2015-12-19T14:11:51.440
754
13656
question
c ubuntu
ディレクトリを作るプログラムを書いたのですが、、


`system` 関数はコマンドプロセッサ（シェル）を呼び出して指定したコマンドを実行します。  
呼び出したシェルは別プロセスなので、`main`に帰ってきた時には`cd`のようなコマンドは現在のワーキングディレクトリに反映されません。  
なので、このような別々の`system`関数の呼び出しは期待したように動作しません。

例えば、一行で、  
`system("cd && mkdir n3 && cd n3 && mkdir down");`のように書きます。


CC BY-SA 3.0
2015-12-19T14:07:55.587
20181
2015-12-19T14:07:55.587
5044
20180
answer


`cd`でのワーキングディレクトリの変更が次の`system`のワーキングディレクトリには影響しないのが原因なので、一連のコマンドを１行につなげてもOKですが、`cd`を使わずに一つの`mkdir`コマンドだけで同じことができます。

[code]

    int main(int argc, char** argv)
    {
        system("mkdir -p ~/n3/down");
    }
    
[/code]


CC BY-SA 3.0
2015-12-19T14:20:50.910
20182
2015-12-19T14:20:50.910
3639
20180
answer