Вы не можете. Программы работают в разных пространствах памяти, так как это разные процессы. Как правило, в современных операционных системах процессы не разделяют память.
Кроме того, было бы трудно определить переменную в C, которая может содержать выходные данные команды, такие как «dir»; нужно было бы динамически расти, чтобы освободить место.
Лучший способ - использовать трубу , которая позволит читать выходные данные команды из потока, из которого вы можете сохранить ее, как считаете нужным.