Jorge Leitao
Jorge Leitao

Reputation: 20163

Interaction of two c/c++ programs

I'm in complete lack of understanding in this. Maybe this is too broad for stack, but here it goes:

Suppose I have two programs (written in C/C++) running simultaneously, say A and B, with different PIDs.

What are the options to make then interact with each other. For instance, how do I pass information from one to another like having one being able to wait for a signal from the other, and respond accordingly.

I know MPI, but MPI normally works for programs that are compiled using the same source (so, it works more for parallel computing than just interaction from completely different programs built to interact with each other).

Thanks

Upvotes: 4

Views: 2035

Answers (3)

Olaf Dietsche
Olaf Dietsche

Reputation: 74078

You must lookout for "IPC" (inter process communication). There are several types:

  • pipes
  • signals
  • shared memory
  • message queues
  • semaphores
  • files (per suggestion of @JonathanLeffler :-)
  • RPC (suggested by @sftrabbit)
    Which is usually more geared towards Client/Server
    • CORBA
    • D-Bus

Upvotes: 5

Martin Beckett
Martin Beckett

Reputation: 96147

The same source doesn't matter - once your programs are compiled the system doesn't know or care where they came from.

There are different ways to communicate between them depending on how much data, how fast, one way or bidirectional, predicatable rate etc etc....

The simplest is possibly just to use the network - note that if you are on the same machine the network stack will automatically use some higher performance system to actually send the data (ie shared memory)

Upvotes: 0

Yakov Galka
Yakov Galka

Reputation: 72529

You use one of the many interprocess communication mechanisms, like pipes (one applications writes bytes into a pipe, the other reads from it. Imagine stdin/stdout.) or shared memory (a region of memory is mapped into both programs virtual address space and they can communicate through it).

Upvotes: 2

Related Questions