I'm assuming this is pseudocode due to the logic error and the near total lack of semicolons. If my fixes don't work I'd like to see the real code.
If it's hanging, it's probably because you left dangling pipe ends around. Remember that a pipe remains valid for as long as both its reading and writing ends are open. Ends your program aren't using still count, and you left both ends of entire pipes hanging around in child 1 and child 3. Ergo, programs reading or writing to those pipes will never ever quit.
I disagree that dup2 is overkill. Even if you don't need to be explicit about which pipe you're copying where, it's good to be clear about it -- if not for yourself, then the future generations that have to read and figure out your code...
Quote:
...But it does not work, it seems like there is something wrong with child 2.
Can you be more specific about what "does not work" means? I've heard that description for anything from "slow" to "on fire".
Hi all,
Im trying to do a simple program which ask the user for a unix command with the arguments. The program fork and the two process communicate with pipes. The child process call execvp with the command and the father process read the result of the execvp via the pipe.
This program works... (11 Replies)
hi i am having issues with extra pipe.
i have a data file and i need to remove the extra pipe in the(example 4th and 7thline) in datafile. there are many other line and filed like this which i need to remove from files. The sample data is below:
270 31|455004|24/03/2010|0001235|72
271... (3 Replies)
Hello !
I want to process a text file in order to extract desired data using sed and grep... Now I am facing a problem piping to grep... nothing happens..
The text consists of blocks of 3 lines that may (or not) contain the Desired data.
the desired data is on each 2... (4 Replies)
Could anyone tell me whats wrong whit this piping? the commands that they execute are correct. the command I am trying is ls|wc. Both processes go to the right if statement.
for(i=0;i<argc;i++){
if(i==0&&argc>1){//first command
if(pipe(pipa1)==-1)
... (2 Replies)
Hi,
Can any one please help me with this. Am struggling hard to get a solution.
I am doing telnet through a C program and getting the stdout file descriptor of the remote machine to pipe.
read() function is getting data, But whenl it receives SOH character ie. ^A ( Start of heading = Console... (2 Replies)
Hello everyone
I got a school project that was due yesterday so i really would aprreciate some help
the following is an example of the input file (bateriaTestes)
1 caeiro 2000 d
2 pessoa 100 w
3 campos 200 b
4 soares 500 w
simple 4 field lines. lines separated by \n and fields by... (1 Reply)
Is there a way to know whether is pipe is opened in read or write mode.I mean is there any signal that is generated when a pipe is opened in read or write mode.
If you have some solution .please let me know ........ (2 Replies)
Basically I am trying to write a short script to report total space used on /u0? file systems. This is what I was trying to do:df -k /u0? | grep -v kbytes | awk '{ printf $2 "+" }' | sed s/.$// | bcBut it returns no output.
This works however: > A=`df -k /u0? |grep -v kbytes | awk '{ printf $2... (2 Replies)
I use read often in scripts to filter the right part into a variable like:
$ print "abc cde efg" | read k l ; print "k=$k, l=$l"
k=, l=
This works on linux and unix versions I work with. On OSX 10.4 this
doesn't work. I found a workaround but would like to know
why the original line... (5 Replies)
I have encountered a strange problem dealing with pipes
and forking. The program basicaly does this:
cat file | tbl | eqn | groff
Now, I have a parent process that forks children
that that exec the stuff that they should. The pipes defined
in the parent are the ones used.
The chain goes... (1 Reply)