我想使用 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()系统调用。