我想使用C文件中的代码更改unix中的目录。我试过这个:
char command[50];
strcpy( command, "cd newdirectory/" );
system(command);
但它没有用。其他命令使用" system"工作
答案 0 :(得分:7)
要更改目录,请尝试使用chdir。相关问题是How to change the working directory in C?。关于使用系统,请参阅Why can't we change directories through system() system call in Linux?和Changing the current directory in Linux using C++。
答案 1 :(得分:3)
您的命令可以正常运行,但只能在system()
来电之内。 例如:如果您执行system("cd newdirectory && rm foo");
,rm foo
将在newdirectory
中发生。
这是因为system()
调用会在fork()
处更改环境,但当它返回到您的调用程序时,您将返回到原始环境。
要更改当前进程的目录,您必须按照user1929959的回答:即使用chdir()
系统调用。