Okay so my question is this. Say I have a simple C++ code:
#include <iostream> using namespace std; int main(){ cout << "Hello World" << endl; return 0; }
Now say I have this program that I would like to run in my program, call it prog. Running this in the terminal could be done by:
./prog
Is there a way to just do this from my simple C++ program? For instance
#include <iostream> using namespace std; int main(){ ./prog ?? cout << "Hello World" << endl; return 0; }
Any feedback would be very much obliged.
In order to run a C program in Linux, you need to have a C compiler present on your systems. The most popular compiler is gcc (GNU Compiler Collection). Keep in mind that it is optional to provide the output object file (-o my_program).
The common case is a "program" like Firefox -- software you run on your computer to solve a particular problem. A computer can run multiple programs at the same time and is responsible for keeping their memory separate.
You want the system()
library call; see system(3). For example:
#include <cstdlib> int main() { std::system("./prog"); return 0; }
The exact command string will be system-dependent, of course.
You can also use popen
#include <stdio.h> int main(void) { FILE *handle = popen("./prog", "r"); if (handle == NULL) { return 1; } char buf[64]; size_t readn; while ((readn = fread(buf, 1, sizeof(buf), handle)) > 0) { fwrite(buf, 1, readn, stdout); } pclose(handle); return 0; }
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