0

我想使用 C 文件中的代码更改 unix 中的目录。我试过这个:

 char command[50];
 strcpy( command, "cd newdirectory/" );
 system(command);

但它没有工作。使用“系统”的其他命令工作。

4

2 回答 2

7

要更改目录,请尝试使用chdir。一个相关的问题是如何更改 C 中的工作目录?. 关于使用系统请看Linux中为什么不能通过system()系统调用改变目录?使用 C++ 更改 Linux 中的当前目录

于 2013-06-09T12:27:01.640 回答
3

你的命令会起作用,但只能在system()通话中。eg:如果你这样做了system("cd newdirectory && rm foo");rm foo就会发生在newdirectory

那是因为system()调用会fork()在你改变环境的地方进行,但是当它回到你的调用程序时,你又会回到原来的环境。

要更改当前进程的目录,您必须按照 user1929959 的回答:使用chdir()系统调用。

于 2013-06-09T13:01:28.123 回答