Solved

How to start a program from another program ?

Posted on 2004-03-24
9
356 Views
Last Modified: 2010-04-01
I am using C++ in Linux.

Simple: I have a program that prints HELLO in the screen. Now, this program should call another program, let us say a program that in a new window will say THANK YOU FOR HELPING.

I know you can open files and write to files from a program, but I want now to start another simple program from the first program.

Thank you, and if you need more details, et me know it.
0
Comment
Question by:probine
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
9 Comments
 
LVL 7

Expert Comment

by:leflon
ID: 10665617
Hi probine,

depends a bit on the environment aou are in, but you can use

int system( const char *command );

to start another prog from your app.
if you can give us your env. we can give you other possibilities

hth
leflon
0
 
LVL 10

Expert Comment

by:Sys_Prog
ID: 10665621
If u have the executable of the second file
Then u could use
system ( execuatble path of second file ) ;

However, I doubt if this would give u the second file output in a new window
It would give the output in the same output widow as that of first

Amit
0
 
LVL 10

Expert Comment

by:Sys_Prog
ID: 10665627
Sorry  leflon,

I guess we started the same time

Amit
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:probine
ID: 10665637
This is what I have:

1. A program called main.cpp
2. A program called test.cpp


This is what I have in main:
*************************
include<iostream>
using namespace std;
int main()
{
   cout <<"Hello";
   // I want to execute the program test.cpp here
}

This is what I have in test.cpp
***************************
include<iostream>
using namespace std;
int main()
{
   cout <<"THANK YOU FOR YOUR HELP";
}


Do I have to incude some header file or something ?
0
 
LVL 7

Expert Comment

by:leflon
ID: 10665660
@Amit: yepp happens to me all the time :-)


oops somehow overread the first line  >> I am using C++ in Linux

leflon
0
 
LVL 7

Accepted Solution

by:
leflon earned 50 total points
ID: 10665688
probine,

you compile both files and will get two exe files (say main.exe and test.exe, or main and test, or whatever your compiler settings are).

to use system you have to include stdlib.h in the file where you will use the system() call.

#include<iostream>
#include <stdlib.h>
using namespace std;
int main()
{
   cout <<"Hello";
   system("test.exe"); // if both exe's are in the same path, else provide complete path to test.exe
   // I want to execute the program test.cpp here
}



leflon
0
 

Author Comment

by:probine
ID: 10665719
Great help and easy to understand... thank you leflon and SYS prog.

You both gave me a good answer... Can I split the points ?
0
 

Author Comment

by:probine
ID: 10667522
Perhaps you can help me with this:

I need to print HELLO in the screen every 10 seconds.

What class do I include and how is the code ?
0
 
LVL 7

Expert Comment

by:leflon
ID: 10668776
probine,

do you have to print a certain number of times or till a key is pressed?

you can use time_t (seconds since 1.1.1970) and the according time functions (include <time.h>).

time_t tNow;
time(&tNow);  // getsystem time in seconds now
int ix = 0;
while(ix<10)
{
    cout << "Hello";
    while((tNow+10)>time(NULL))  // loop till actual system time is 10 seconds greater than tNow
    {
// use either
        sleep(1);       //stops thread for 1 second, check your man pages for header needed for this
// or
        usleep(1000);   //stops thread for 1000 microsecond, check your man pages for header needed for this
// you can omit the sleeps, but then the prog will use 100% of the system for the whole time it runs, which is not very good
    }
    time(&tNow);
}

leflon
0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the first in a series of articles about the C/C++ Visual Studio Express debugger.  It provides a quick start guide in using the debugger. Part 2 focuses on additional topics in breakpoints.  Lastly, Part 3 focuses on th…
Container Orchestration platforms empower organizations to scale their apps at an exceptional rate. This is the reason numerous innovation-driven companies are moving apps to an appropriated datacenter wide platform that empowers them to scale at a …
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question