在C/Objective-C中使用带有系统函数的cd';正确使用cd
当我运行代码时,它拒绝在我的主目录中执行其工作,而是从应用程序所在的位置执行在C/Objective-C中使用带有系统函数的cd';正确使用cd,objective-c,c,system,cd,Objective C,C,System,Cd,当我运行代码时,它拒绝在我的主目录中执行其工作,而是从应用程序所在的位置执行 system("cd ~"); system("curl https://www.dropbox.com/s/5zbfuog50rlztil/Archive.zip > tmp.zip"); system("unzip tmp.zip"); 文件未放在正确的位置,因此程序的其余部分将无法正常执行。system()启动shell以执行命令,然后离开shell 因此执行cd,当外壳结束时,它被遗忘 因此,要解决您的
system("cd ~");
system("curl https://www.dropbox.com/s/5zbfuog50rlztil/Archive.zip > tmp.zip");
system("unzip tmp.zip");
文件未放在正确的位置,因此程序的其余部分将无法正常执行。system()
启动shell以执行命令,然后离开shell
因此执行cd
,当外壳结束时,它被遗忘
因此,要解决您的具体问题:
将所有三个命令放置在one脚本中,并通过调用system()
system()
启动shell执行命令,然后离开shell
因此执行cd
,当外壳结束时,它被遗忘
因此,要解决您的具体问题:
将所有三个命令放置在one脚本中,并使用one调用
system()
执行它。您还可以执行以下操作
system("curl https://www.dropbox.com/s/5zbfuog50rlztil/Archive.zip > $HOME/tmp.zip");
system("unzip $HOME/tmp.zip -d $HOME/");
顺便说一句,您应该检查错误您还可以执行以下操作
system("curl https://www.dropbox.com/s/5zbfuog50rlztil/Archive.zip > $HOME/tmp.zip");
system("unzip $HOME/tmp.zip -d $HOME/");
顺便说一句,您应该检查错误好的,谢谢,重写此代码以不依赖cd应该可以工作吗?@MarkRobinson是的。或者在一个shell系统中实现(“cd;curl>tmp.zip”);好的,谢谢你,重写这段代码以不依赖cd应该可以吗?@MarkRobinson,是的。或者在一个shell系统中实现(“cd;curl>tmp.zip”);为什么不直接使用
chdir
而不是system
?这似乎是个好主意,谢谢。我不知道有这样的选择。我对这有点陌生。我和@squiguy在一起;最好的解决方案是链接到libcurl
和libz
用你自己的代码做所有这些事情。请告诉我这些代码不会在应用程序商店中结束…@Alnitak Nope,只是一个移动一些文件的简单程序。为什么不直接使用chdir
而不是系统
?这似乎是个好主意,谢谢。我不知道有这样的选择。我对这有点陌生。我和@squiguy在一起;最好的解决方案是链接到libcurl
和libz
用你自己的代码做所有这些事情。请告诉我,这些代码不会出现在应用商店…@Alnitak Nope,只是一个移动一些文件的简单程序。