que - C: ¿ejecutas un comando del sistema y obtienes resultados?
que se puede hacer con cmd (3)
Posible duplicado:
¿Cómo puedo ejecutar un programa externo desde C y analizar su salida?
Quiero ejecutar un comando en Linux y obtener el texto devuelto de lo que produce, pero no quiero que este texto se imprima en la pantalla. ¿Hay una manera más elegante que hacer un archivo temporal?
Necesitas algún tipo de comunicación entre procesos. Use una pipe o un buffer compartido.
Por lo general, si el comando es un programa externo, puede usar el sistema operativo para ayudarlo aquí.
command > file_output.txt
Entonces tu código C estaría haciendo algo como
exec("command > file_output.txt");
Luego puede usar el archivo file_output.txt.
Quieres la función " popen ". Aquí hay un ejemplo de ejecutar el comando "ls / etc" y salir a la consola.
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char *argv[] )
{
FILE *fp;
char path[1035];
/* Open the command for reading. */
fp = popen("/bin/ls /etc/", "r");
if (fp == NULL) {
printf("Failed to run command/n" );
exit(1);
}
/* Read the output a line at a time - output it. */
while (fgets(path, sizeof(path)-1, fp) != NULL) {
printf("%s", path);
}
/* close */
pclose(fp);
return 0;
}