我想使用 C 文件中的代码更改 unix 中的目录。我试过这个:
char command[50];
strcpy( command, "cd newdirectory/" );
system(command);
但它没有工作。使用“系统”的其他命令工作。
要更改目录,请尝试使用chdir。一个相关的问题是如何更改 C 中的工作目录?. 关于使用系统请看Linux中为什么不能通过system()系统调用改变目录?和使用 C++ 更改 Linux 中的当前目录。
你的命令会起作用,但只能在system()
通话中。eg:如果你这样做了system("cd newdirectory && rm foo");
,rm foo
就会发生在newdirectory
。
那是因为system()
调用会fork()
在你改变环境的地方进行,但是当它回到你的调用程序时,你又会回到原来的环境。
要更改当前进程的目录,您必须按照 user1929959 的回答:即使用chdir()
系统调用。