This is functionally similar to open-input-process which uses popen(). However, this mechanism is more direct in its invocation of the subprogram (since the subcommand is not invoked by sh.). On the downside, you can't use shell expansions in the command, either. Like the difference between `fork/exec' and `system'.