03-24-2008
C++ How to use pipe() & fork() with stdin and stdout to another program
Hi,
Program A: uses pipe()
I am able to read the stdout of PROGAM B (stdout got through system() command) into PROGRAM A using:
* child
-> dup2(fd[1], STDOUT_FILENO);
-> execl("/path/PROGRAM B", "PROGRAM B", NULL);
* parent
-> char line[100];
-> read(fd[0], line, 100);
Question:
---------
How to write to stdin of PROGRAM B from PROGRAM A?
* should I use a different pipe?
* how to I read stdin in PROGRAM B? using cin?
Thanks in advance,
Vivek
Last edited by vvaidyan; 04-30-2008 at 01:33 PM..
Reason: Question made more precise
10 More Discussions You Might Find Interesting
1. Programming
Hi,
Program A: uses pipe()
I am able to read the stdout of PROGAM B (stdout got through system() command) into PROGRAM A using:
* child
-> dup2(fd, STDOUT_FILENO);
-> execl("/path/PROGRAM B", "PROGRAM B", NULL);
* parent
-> char line;
-> read(fd, line, 100);
Question:
---------... (1 Reply)
Discussion started by: vvaidyan
1 Replies
2. Programming
PROGRAM A <-> PROGRAM B
PROGRAM A sends data as STDIN ro PROGRAM B and when PROGRAM B is executed from PROGRAM A, it sends output back to PROGRAM A. This is implemented using 2 pipes (fd1 & fd2).
The above process happens in a loop and during the second run, the previous data that had been... (10 Replies)
Discussion started by: vvaidyan
10 Replies
3. UNIX for Dummies Questions & Answers
Hi,
Program A: uses pipe()
I am able to read the stdout of PROGAM B (stdout got through system() command) into PROGRAM A using:
* child
-> dup2(fd, STDOUT_FILENO);
-> execl("/path/PROGRAM B", "PROGRAM B", NULL);
* parent
-> char line;
-> read(fd, line, 100);
Question:
---------... (3 Replies)
Discussion started by: vvaidyan
3 Replies
4. Programming
Hi all
I've run into a snag in a program of mine where part of what I entered in at the start of run-time, instead of the current value within printf() is being printed out.
After failing with fflush() and setbuf(), I tried the following approach
void BufferFlusher()
{
int in=0;... (9 Replies)
Discussion started by: JamesGoh
9 Replies
5. UNIX for Dummies Questions & Answers
When a process fork(), the child share the same file descriptors as his father. Thus, they share the same stdin. Quick and dirty exemple below (sorry for the ugly gets() call) :
#include <stdio.h>
#include <unistd.h>
int main()
{
char buf;
if (fork()) { /*parent */
... (1 Reply)
Discussion started by: milouz
1 Replies
6. Programming
hello everybode.Got some sort of "problems" with this stuff;
well this is a program
int main()
{
int Pipe;
int origStdin, origStdout;
int childPID;
origStdin = dup(0);
origStdout = dup(1);
pipe(Pipe);
if( (childPID = fork()) < 0 )
{
perror(... (2 Replies)
Discussion started by: IdleProc
2 Replies
7. Shell Programming and Scripting
#!/bin/sh
exec 0</dev/null
exec 1>/dev/null
ls -l /proc/self/fd >&2 produces total 0
lr-x------ 1 tyler users 64 Feb 18 10:38 0 -> /proc/7886/fd
lrwx------ 1 tyler users 64 Feb 18 10:38 1 -> /dev/pts/4
lrwx------ 1 tyler users 64 Feb 18 10:38 2 -> /dev/pts/4 I've verified the shell is... (10 Replies)
Discussion started by: Corona688
10 Replies
8. Programming
Hi,
i am using the below program to read from the standard input or to write to standard out put.
i know that using highlevel functions this can be done better than what i have done here.
i just want to know is there any other method by which i find the exact number of characters ( this... (3 Replies)
Discussion started by: MrUser
3 Replies
9. UNIX for Dummies Questions & Answers
Hallo,
i have a script like:
if ;then
echo "OK"
else
echo "ERROR $2 is missing"
fi;
if ;then
touch $2
fi;
if ;then
cat $1 | grep xy > $2 (1 Reply)
Discussion started by: eightball
1 Replies
10. Shell Programming and Scripting
Well.. let's say i need to write a pretty simple script.
In my script i have 2 variables which can have value of 0 or 1.
$VERBOSE
$LOG
I need to implement these cases:
($VERBOSE = 0 && $LOG = 0) => ONLY ERROR output (STDERR to console && STDOUT to /dev/null)
($VERBOSE = 1... (5 Replies)
Discussion started by: Marmz
5 Replies
DIFF3(1) User Commands DIFF3(1)
NAME
diff3 - compare three files line by line
SYNOPSIS
diff3 [OPTION]... MYFILE OLDFILE YOURFILE
DESCRIPTION
Compare three files line by line.
-e --ed
Output unmerged changes from OLDFILE to YOURFILE into MYFILE.
-E --show-overlap
Output unmerged changes, bracketing conflicts.
-A --show-all
Output all changes, bracketing conflicts.
-x --overlap-only
Output overlapping changes.
-X Output overlapping changes, bracketing them.
-3 --easy-only
Output unmerged nonoverlapping changes.
-m --merge
Output merged file instead of ed script (default -A).
-L LABEL --label=LABEL
Use LABEL instead of file name.
-i Append `w' and `q' commands to ed scripts.
-a --text
Treat all files as text.
-T --initial-tab
Make tabs line up by prepending a tab.
--diff-program=PROGRAM
Use PROGRAM to compare files.
-v --version
Output version info.
--help Output this help.
If a FILE is `-', read standard input.
AUTHOR
Written by Randy Smith.
REPORTING BUGS
Report bugs to <bug-gnu-utils@gnu.org>.
COPYRIGHT
Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of this program under the terms of the
GNU General Public License. For more information about these matters, see the file named COPYING.
SEE ALSO
The full documentation for diff3 is maintained as a Texinfo manual. If the info and diff3 programs are properly installed at your site,
the command
info diff
should give you access to the complete manual.
diffutils 2.8.1 April 2002 DIFF3(1)