the code i put above using open() still waits for the external command to finish. ommitted error checking I know but the oggenc.exe opens ok. i've come across another problem too. the actual output at the end of it isn't even the full output of the program anyway! i think i may be barking up the wrong tree here, I think I need to find out how to interface to the ogg vorbis encoder DLL library. there is an ogg::vorbis library but this doesn't support encoding which is obviously what I'm after.