Record the input and output of a program
recordio program [ arg ... ]
recordio runs program with the given arguments. It prints lines to stderr showing the input and output of program.
At the beginning of each line on stderr, recordio inserts the program process ID, along with < for input or > for output. At the end of each line it inserts a space, a plus sign, or [EOF]; a space indicates that there was a newline in the input or output, and [EOF] indicates the end of input or output.
recordio prints every packet of input and output immediately. It does not attempt to combine packets into coherent stderr lines. For example,
recordio sh -c 'cat /dev/fd/8 2>&1' > /dev/null
could produce
5135 > cat: /dev/fd/8: Bad file descriptor 5135 > [EOF]
or
5135 > cat: + 5135 > /dev/fd/8+ 5135 > : + 5135 > Bad file descriptor 5135 > [EOF]
recordio uses several lines for long packets to guarantee that each line is printed atomically to stderr.
recordio runs as a child of program. It exits when it sees the end of program's output.