在C / Objective-C中使用cd~with system function不能正常使用cd

时间:2013-01-03 07:45:02

标签: objective-c c system cd

当我运行我的代码时,它拒绝在我的主目录中进行工作,而是从应用程序所在的位置开始。

system("cd ~");
system("curl https://www.dropbox.com/s/5zbfuog50rlztil/Archive.zip > tmp.zip");
system("unzip tmp.zip");

文件未放在正确的位置,因此程序的其余部分将无法正常执行。

2 个答案:

答案 0 :(得分:3)

system()启动一个shell来执行命令,然后离开shell。

所以cd被执行了,当shell结束时,它被遗忘了。

所以要解决你的具体问题:

将所有三个命令放在一个脚本中,并通过一次调用system()执行该操作。

答案 1 :(得分:0)

您还可以执行以下操作

system("curl https://www.dropbox.com/s/5zbfuog50rlztil/Archive.zip > $HOME/tmp.zip");
system("unzip $HOME/tmp.zip -d $HOME/");

顺便说一下,你应该检查错误