该命令在C中有效吗?

时间:2013-06-09 12:17:58

标签: c linux bash shell directory

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

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

但它没有用。其他命令使用" system"工作

2 个答案:

答案 0 :(得分:7)

答案 1 :(得分:3)

您的命令可以正常运行,但只能在system()来电之内。 例如:如果您执行system("cd newdirectory && rm foo");rm foo将在newdirectory中发生。

这是因为system()调用会在fork()处更改环境,但当它返回到您的调用程序时,您将返回到原始环境。

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