Foros del Web » Programación para mayores de 30 ;) » C/C++ »

como ejecutar un commando y obtener lo que imprime en la consola?

Estas en el tema de como ejecutar un commando y obtener lo que imprime en la consola? en el foro de C/C++ en Foros del Web. saludos amigo necesito hacer un programa que me ejecute un comando y obtener lo que este comamndo imprima en la consola. por favor ayuda o ...
  #1 (permalink)  
Antiguo 25/05/2010, 12:24
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 7 meses
Puntos: 2
como ejecutar un commando y obtener lo que imprime en la consola?

saludos amigo necesito hacer un programa que me ejecute un comando y obtener lo que este comamndo imprima en la consola. por favor ayuda o algun ejemplo.
puede ser en c o c++.

gracias de antemano.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #2 (permalink)  
Antiguo 31/05/2010, 10:52
Avatar de donyoyo  
Fecha de Ingreso: mayo-2010
Ubicación: Chile
Mensajes: 31
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: como ejecutar un commando y obtener lo que imprime en la consola?

estimado, utiliza popen (pipe I/O to/from process)
es una funcion de la stdio:

una cosa asi:
strcpy(comando,"comando a ejecutar");
if ((fhand=popen(comando,"r"))==NULL)
{
printf("Error a intentar popen\n");
exit(1);
}

while(fgets(buffer,sizeof(buffer),fhand))
{
printf("%s",buffer);
}

espero te sirva
  #3 (permalink)  
Antiguo 31/05/2010, 11:01
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 7 meses
Puntos: 2
Respuesta: como ejecutar un commando y obtener lo que imprime en la consola?

gracias amigo.


fhand que tipo es o aque biblioteca estandar pertenece?
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #4 (permalink)  
Antiguo 31/05/2010, 12:10
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 7 meses
Puntos: 2
Respuesta: como ejecutar un commando y obtener lo que imprime en la consola?

ejemplo funcional para windows


Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    FILE *fhand;
    char comando[10];
    char buffer[300];
    strcpy(comando,"net viewt");
    if ((fhand=popen(comando,"r"))==NULL)
    {
        printf("Error a intentar popen\n");
        exit(1);
    }
    system("cls");
    while(fgets(buffer,sizeof(buffer),fhand))
    {
          printf("%s",buffer);
    }

    system("pause");
    return 0;
}
muchas gracias por la ayuda.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #5 (permalink)  
Antiguo 01/06/2010, 13:06
Avatar de donyoyo  
Fecha de Ingreso: mayo-2010
Ubicación: Chile
Mensajes: 31
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: como ejecutar un commando y obtener lo que imprime en la consola?

veo que ya determinaste el tipo, y creaste un pequeña muestra de un programa
un gusto poder ayudar a los camaradas en el desarrollo
  #6 (permalink)  
Antiguo 01/06/2010, 13:20
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 7 meses
Puntos: 2
Respuesta: como ejecutar un commando y obtener lo que imprime en la consola?

muchas gracias una vez mas, ahora solo falta implementarle que capture los mensajes de la salida estandar de error stderr.
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz

Etiquetas: consola, ejecutar, imprime
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:13.