The C example I gave was incomplete, by the way - that includes no way to do IPC. It simply calls the downstream process but doesn't read the results or anything. If you add pipe(2) and the necessary read/write loops on each of the processes, it can get quite un-pretty very quickly with all the necessary error checking. Certainly not impossible - that's why the calls are there, but unless you're really comfortable writing that sort of stuff, there's some more motivation to try to avoid command calls. You've been warned.