This is almost a rewrite of tcopy(1) to add new functionality.
This is a continuation of D51442, where Warner's comment made me decide to go all in and rewrite the "tape dev" code as C++ classes for clarity.
I also changed the url to open-simh and removed the prompt characters from the examples as Alexander suggested.
I made SIMH-TAPFILE the default for non-tape-devices, and added -r instead of -t.
I added -l logfile option.
I appended duration and throughput to the "total" line.
I added SIGINFO support.
The exit status was and still are all over the place. I have used EX_* in new code, but left the old alone. Given that the exit status was undocumented before, I feel it would be safe to sanitize it all to EX_* values, but would like feedback on this point ?
In -c mode the two tape drives are rewound sequentially, and short of spawning a pthread, there seems to be no way to do it in parallel ?
(Please ignore the 'tst' and 'flint' targets added to the make file, I'll remove them before committing.)