popen is really much simpler than what you think, just have a look at the manpage.
If you want to use system, keep in mind that it does not return the output of the program you want to run, but since the command is interpreted by the shell you can actually redirect stdout and/or stderr with something like:
system("command -options args > outfile");
and then read outfile
A third, much more exciting alternative, is to play with pipe, fork, dup, exec and do yourself what popen does. After this, you'll treat shell writers with much more respect :-)