В Linux и OS X popen() на самом деле это ваш лучший выбор, как отметил dmckee, поскольку обе ОС поддерживают этот вызов. В Windows это должно помочь: http://msdn.microsoft.com/en-us/library/ms682499.aspx
popen()