#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main ()
  int i,j;
  puts ("Trying to execute command CD ");
 [b] i = system ("cd c:\text"); [/b]
  if (i==-1) puts ("Error executing CD");
  else puts ("Command successfully executed");

 puts ("Trying to execute command del ");
 [b] j = system ("del *.txt"); [/b]
  if (j==-1) puts ("Error executing del");
  else puts ("Command successfully executed");

  return 0;

It won't work. How do I make this go to a specific directory? I know if i just make it i = system ("cd"); that it will print the current directory. Is there a way to change directories this way?

13 Years
Discussion Span
Last Post by kyle

system actually starts a new process, does what you want, then closes that process. in fact, if you really think about it, what does it mean to "change directory"; "change directory" or cd is a Shell implemented feature on the *system* level. With this in mind, you're best bet is to use the standard unix library.

#include <unistd.h>

and the function chdir(char *path)

man chdir
man getcwd

system is the worst function of all time, never use it.


Where can I get unistd.h?

I'm sorry, at a closer look you are using Windows...I thought you were actually using C on a Unix System. I'm not sure how you'd do it with the Win32 API, I'd imagine it is quite similar.


Shouldnt system(cd c:\text);
be system(cd c:\\text);



By the way subtronic, on windows the chdir() function is in dir.h. Thanks alot for all the help guys :)

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.