10-26-2007
Presumably because the shell itself still has both ends of both pipes still open.
Try adding
close(pipe_a[0]);
close(pipe_a[1]);
close(pipe_b[0]);
close(pipe_b[1]);
prior to your wait.
When your shell exits, these file descriptors get closed, hence allowing EOF to be read. EOF will never be read while there is a write end open.
7 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
if somebody can help me pls.
i need the source code for a shell which compiles C or java programs.
i need a very short and simple one, just for the compiling part, in UNIX
Respect (4 Replies)
Discussion started by: zlatan005
4 Replies
2. UNIX for Dummies Questions & Answers
#!/usr/bin/m4
when running m4 scripts with "#!/usr/bin/m4" they are executed properly, but "#!/usr/bin/m4" is printed out - how to avoid it?
Thanks in advance. (5 Replies)
Discussion started by: Action
5 Replies
3. Programming
Hello guys - do you have any sample program implementing UNIX commands in an interpreter with Java? I can look up the simple ones such "ls" etc and then write my own commands.
I would appreciate it. (2 Replies)
Discussion started by: cmontr
2 Replies
4. Shell Programming and Scripting
Hi,
I am writing a shell script that connects to a remote server and performs some tasks on the server and exits.
Since i am using a ssh connection, i am using a "expect" utility to supply the password automatically (which is present within the script).
In order to use this utility, i need to... (3 Replies)
Discussion started by: sunrexstar
3 Replies
5. Shell Programming and Scripting
Hi. My name is Caleb (a.k.a RagingNinja) form the whited00r forums. (Whited00r makes custom firmware for iOS devices).
I have been learning and creating simple shells scripts. I have been recently using VIM for Windows or using VirtualBox to run the UBUNTU OS within VirtualBox to create my shell... (2 Replies)
Discussion started by: RagingNinja
2 Replies
6. Linux
Can you explain me what is ment by interpreter files ??
Why and how they are used?? (1 Reply)
Discussion started by: kkalyan
1 Replies
7. Shell Programming and Scripting
Hi,
Is it possible to choose the inerpreter conditionally.
For example, if whereis bash returns /usr/bin/bash then i need to choose #!/usr/bin/bash
else i need to use #!/usr/bin/sh.
Is it possible to achieve in a shell script?
Thanks (1 Reply)
Discussion started by: pandeesh
1 Replies
close(n) Tcl Built-In Commands close(n)
__________________________________________________________________________________________________________________________________________________
NAME
close - Close an open channel.
SYNOPSIS
close channelId
_________________________________________________________________
DESCRIPTION
Closes the channel given by channelId. ChannelId must be a channel identifier such as the return value from a previous open or socket com-
mand. All buffered output is flushed to the channel's output device, any buffered input is discarded, the underlying file or device is
closed, and channelId becomes unavailable for use.
If the channel is blocking, the command does not return until all output is flushed. If the channel is nonblocking and there is unflushed |
output, the channel remains open and the command returns immediately; output will be flushed in the background and the channel will be |
closed when all the flushing is complete.
If channelId is a blocking channel for a command pipeline then close waits for the child processes to complete.
If the channel is shared between interpreters, then close makes channelId unavailable in the invoking interpreter but has no other effect |
until all of the sharing interpreters have closed the channel. When the last interpreter in which the channel is registered invokes close, |
the cleanup actions described above occur. See the interp command for a description of channel sharing. |
Channels are automatically closed when an interpreter is destroyed and when the process exits. Channels are switched to blocking mode, to |
ensure that all output is correctly flushed before the process exits.
The command returns an empty string, and may generate an error if an error occurs while flushing output.
SEE ALSO
file(n), open(n), socket(n), eof(n)
KEYWORDS
blocking, channel, close, nonblocking
Tcl 7.5 close(n)