archy, а доку хорошо читал? 

в описании, чего возвращает функция popen, четко ж написано:
Returns a file pointer identical to that returned by fopen(), except that it is unidirectional (may only be used for reading or writing)...
дословно: возвращает дескриптор файла, аналогично fopen(), за исключением того, что этот дескриптор "однонаправленный" 
{ ВНИМАНИЕ! дальше объясняется, что означает "однонаправленный" 

 } 
(может быть использован только для чтения ИЛИ только для записи)
... 
и что ж ты от нее болезной хочешь? 

 ну, не умеет она ЭТО, не умеет 
