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.
--strip-trailing-cr
Strip trailing carriage return on input.
-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. Exit status is 0 if successful, 1 if conflicts, 2 if trouble.
AUTHOR
Written by Randy Smith.
REPORTING BUGS
Report bugs to <bug-gnu-utils@gnu.org>.
COPYRIGHT
Copyright (C) 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
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.7-cvs January 2008 DIFF3(1)