I have a problem where I have to run a command prompt command from inside a C program. Here is what I did
#include<stdio.h>
#include<stdlib.h>
int main(){
system("cd \Users");
system("Dir");
}
The problem is I want to cd into Users first and then execute the command Dir where as currently the program outputs that it cant find the path specified and the Dir is executed in the parent process directory i-e where the program source file is located.
The actual task I want to do is just want to run a java file from a particular directory from inside a C program. that java file is in C:\Users\Abdullah\pro . My C program's parent directory is C:\Users\Cprog. Please advise on how may I do this
While in the command prompt type "cd\", then enter. From there type "cd\program" then hit the tab button until you see "c:\program files (x86)", then hit enter.
Use the cd command to move from your present directory to another directory. You must have execute (search) permission in the specified directory.
system()
starts a new process. This new process changes its current directory, then ends. The current directory of your program's process does not change.
You want chdir()
(or _chdir()
).
Your program has some incorrect assumptions. First of all, "cd" and "dir" are not programs, but commands built into the shell, cmd.exe. Second, I suspect you don't need to change the current directory at all.
Either way, since this is a Windows system, I would look at an example on how to start a program with CreateProcess().
For changing the current directory, check out the lpCurrentDirectory parameter of the CreateProcess() call.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With