#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");

getchar();
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?

2
Contributors
4
Replies
7
Views
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?

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);

Yes.

chdir("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.