If the child was killed by a signal, the second element is the string SIG and the third element is the signal name. The Extended Tcl pipe command creates a pipe . A pipe is a pair of file dexcriptors, one for reading and one for writing, connected through a buffer in the kernel. Remember that a pipe automatically synchronizes two processes, making for easy interprocess communication. To creat a pipe, you simply invoke the pipe command with two variable names to hold the read and write file descriptors.
Any data written to the write file descriptor is available for reading on the read file descriptor.
This problem goes away when the pipe is connecting two processes. Although it works, a pipe is an IPC mechanism and so is not very useful in a single process. But it's just what you need to communicate between a parent and child. The parent creates the pipe, and since file descriptors are shared with the child, they can send messages back and forth across the pipe. In the above, the parent can write any size message to the child.