C程序更改目录

时间:2017-09-12 23:19:11

标签: c command

您好我正在编写一个C程序,我是新手,我使用system来运行命令,但每当我输入cd..时它会显示正确的目录,但它始终保持在那里。

int main(){

char command[20];

    while(1){
       scanf("%s", &command); //typing in cd..
       //it returns "C:\Program Files (x86)\Google\Drive\"
       system(command);
    }
}

我再次键入它仍然似乎在同一目录中。如何使用system

更改C中的目录

1 个答案:

答案 0 :(得分:0)

Linux系统函数名为' chdir'你可以在你的程序中使用。 ' chidr'可以在程序运行时更改程序当前目录。

该程序将在运行时成为linux的一个进程。系统会将环境变量复制到此过程。在这些环境变量中,名为PWD的变量仍然是进程的当前目录路径。因此,您可以使用以下程序显示所有环境变量的值:

   #include <stdlib.h>
   #include <stdio.h>
   extern char **environ;
   int main()
   {
       char **env = environ;
      //show the current directory path
      printf("PWD: %s\n", getenv("PWD"));
      //show all environment variables.
       while(*env)
       {
           printf("%s\n",*env);
           env++;
       }
    return 0;
   }

因此,您可以更改变量&#34; PWD&#34;的值。通过调用名为&#34; chdir&#34;的系统函数并通过调用名为&#34; getenv&#34;的系统函数来显示当前路径。 此外,您可以使用以下shell commond显示环境变量的详细信息:

man 7 environ

如果您不知道如何使用&#34; chdir&#34;函数,您可以使用以下shell公共行来获取帮助:

man chdir