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

[SOLUCIONADO] Salida de un proceso?

Estas en el tema de Salida de un proceso? en el foro de C/C++ en Foros del Web. Alguien sabe como leer la salida de un proceso en c en linux y si es posible por favor en windows. Gracias de antemano....
  #1 (permalink)  
Antiguo 27/01/2016, 13:54
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Salida de un proceso?

Alguien sabe como leer la salida de un proceso en c en linux y si es posible por favor en windows.

Gracias de antemano.
  #2 (permalink)  
Antiguo 28/01/2016, 04:31
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Salida de un proceso?

Vale que el foro está para echar una mano... pero también tienes que aprender a valerte por ti misma.

¿Has probado a buscar en Internet cómo hacer esto? Te aseguro que no eres la primera persona a la que se le ocurre capturar la salida de un segundo programa... los IDE por ejemplo lo llevan haciendo desde tiempos inmemoriales.

Te animo a invertir parte de tu tiempo en buscar la información. Aprender a ser autosuficiente es bastante importante.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #3 (permalink)  
Antiguo 28/01/2016, 16:15
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

Se que e formulado muchas preguntas ultimamente pero si e buscado por internet esta pregunta y la llevo buscando desde hace varios dias pero lo mas que me dicen es como saber conque linea fue ejecutado

los IDEs usan funciones como popen o system pero yo lo que quiere es leer la salida de un proceso completamente diferente
  #4 (permalink)  
Antiguo 29/01/2016, 01:47
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Salida de un proceso?

Cita:
Iniciado por sanandresm Ver Mensaje
los IDEs usan funciones como popen o system pero yo lo que quiere es leer la salida de un proceso completamente diferente
Si usas system no puedes recuperar la salida por lo que dudo que los IDE usen system para compilar los programas.

En cuanto a popen... ¿cual es el problema de usar esta función? Se supone que esta función ejecuta una aplicación y te permite gestionar la entrada/salida de la misma como si fuese un fichero. Eso sí, esta función es POSIX, luego no está disponible en Windows
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #5 (permalink)  
Antiguo 29/01/2016, 21:41
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

Cita:
yo lo que quiere es leer la salida de un proceso completamente diferente
Cuando decia esto me referia a uno que ya este ejecutado y no uno que yo lo ejecute por ejemplo el proceso firefox el cual ya estaria ejecutado
  #6 (permalink)  
Antiguo 30/01/2016, 05:33
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Salida de un proceso?

Cita:
Iniciado por sanandresm Ver Mensaje
Cuando decia esto me referia a uno que ya este ejecutado y no uno que yo lo ejecute por ejemplo el proceso firefox el cual ya estaria ejecutado
Esos detalles tontos es importante decirlos al principio. No es lo mismo crear un proceso y configurar su entrada salida que intentar modificar los de un proceso que ya esta en ejecución.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #7 (permalink)  
Antiguo 30/01/2016, 20:21
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

Lo se, disculpame
  #8 (permalink)  
Antiguo 31/01/2016, 04:29
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Salida de un proceso?

A que te refieres con leer la salida de un proceso? Yo con eso entiendo que quieres saber el valor de retorno del proceso al cerrarse.
Sea lo que sea, hay una opción que no fallará y que es atachearse al proceso abierto usando un loader debugger el cual podría gestionar todos los eventos que desees. Otra opción es crearte un hook a las funciones que desees y así capturar lo que quieras. Esas cosas las he probado en windows y funcionan pero ni idea de como hacerlo en Linux.
  #9 (permalink)  
Antiguo 31/01/2016, 18:28
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

No se puede hacer un hook con un programa, lo que digo es que si un programa esta ejecutado pueda ver la salida del programa
  #10 (permalink)  
Antiguo 01/02/2016, 00:08
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Salida de un proceso?

No creo que quieras hacer un depurador de código... ¿Que proyecto tienes en mente? Quizas así podamos entender mejor el escenario en el que te mueves. Lo mismo te estas complicando demasiado la vida.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #11 (permalink)  
Antiguo 01/02/2016, 12:39
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

Muchas veces estoy usando un programa y en algun momento quisiera saber que imprimio en ese momento en la terminal, asi que decidi hacer un programa que me dejara hacer eso pero como ben no se como lograrlo
  #12 (permalink)  
Antiguo 01/02/2016, 13:45
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Salida de un proceso?

Tanto en Windows como en Linux puedes redireccionar la salida estándar a, por ejemplo, un fichero. En estas condiciones cualquier mensaje que vaya a mostrar el proceso se volcará al fichero en cuestión.

¿Te vale con eso?

La opción que propones pasa por varios pasos que pueden no ser sencillos de entender:
  • Conocer el id del proceso (piensa que cada proceso en ejecución tiene un id diferente y tu quieres identificar uno en concreto... puedes hacerlo mediante el nombre de la aplicación... ahora como tengas dos instancias de la aplicación abiertas a la vez el lío lo tienes garantizado).
  • Adjuntarse al proceso
  • Redireccionar la salida del proceso
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #13 (permalink)  
Antiguo 01/02/2016, 17:14
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

El paso de obtener el id del proceso ya lo se hacer pero los otros dos no tienes algun tutorial ejemplo o me podrias explicar por favor?.
  #14 (permalink)  
Antiguo 02/02/2016, 00:15
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Salida de un proceso?

http://stackoverflow.com/questions/1...unning-process

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #15 (permalink)  
Antiguo 02/02/2016, 12:33
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

No, lo que quiero es con un programa con lo que dices tengo que llamarlo especificando el archivo pero yo lo quiero en tiempo de ejecutacion
  #16 (permalink)  
Antiguo 03/02/2016, 01:25
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Salida de un proceso?

Cita:
Iniciado por sanandresm Ver Mensaje
No, lo que quiero es con un programa con lo que dices tengo que llamarlo especificando el archivo pero yo lo quiero en tiempo de ejecutacion
No te has molestado siquiera en leer el contenido del enlace...

... y como prueba de ello la primera línea de la primera respuesta:

__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #17 (permalink)  
Antiguo 03/02/2016, 09:45
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

Yo si mire el enlace pero yo quiero hacerlo desde el programa y sin tener que abrir la aplicacion a la que quiero leerle la salida desde el terminal sino que en cualquier momento leer la salida de cualquier proceso y hay lo que hacen es poner el proceso en segundo plano con & y luego redirigirlo a otro proceso pero para eso tienes que ejecutarlo desde tu desde el terminal y no es eso lo que busco.
  #18 (permalink)  
Antiguo 03/02/2016, 10:04
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Salida de un proceso?

Error... lo que te están enseñando es, básicamente, a usar GDB para modificar la salida estándar de un proceso.

Piensa que este tipo de tareas son propias del núcleo del sistema operativo... navegar por las funciones que expone dicho núcleo no suele ser demasiado habitual porque son propensas a cambiar con cada nueva versión del SO.

Ahora... siempre puedes navegar por el código fuente de GDB para ver cómo se acopla al proceso por un lado y qué secuencia de llamadas realiza cuando se realiza el "cambio de ficheros" para modificar la salida del programa.

Normalmente si buscas cosas de este estilo por la red y no encuentras nada posiblemente es porque te estás metiendo en un jardín del que no se suele salir con la cabeza en alto... En mi humilde opinión creo que deberías replantearte el proyecto... quizás redireccionar desde el principio la salida del programa a tu aplicación y controlar desde dicha aplicación cuando no te interesa capturar la salida para lanzar un cout y volcar dicha salida a la consola... o algo similar.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #19 (permalink)  
Antiguo 04/02/2016, 16:53
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

Disculpame.

Pero lo que dices no cargaria mucho la CPU?
  #20 (permalink)  
Antiguo 05/02/2016, 00:06
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Salida de un proceso?

Cita:
Iniciado por sanandresm Ver Mensaje
Disculpame.

Pero lo que dices no cargaria mucho la CPU?
Primero prueba y después decide.

En programación no se qué nos pasa que en seguida nos entra la neura del rendimiento... Y la inmensa mayoría de las veces es por nada. Admito que a mi también me pasa de vez en cuando.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #21 (permalink)  
Antiguo 06/02/2016, 05:36
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Salida de un proceso?

Puedes crearte una dll que lea la cadena que se enviará a la consola, haga un injerto en ese sitio hacia una función de tu dll la cual crea un log o una zona de memoria compartida y ejecuta las instrucciones destruidas por el salto y retornas a la parte donde se estaba ejecutando. Con eso podrías enviar toda la salida de consola a tu aplicación usando una dll inyectada. Mira esto: https://blog.ka0labs.net/post/8/
Sí lo intentas y te quedas atrancado me mandas el ejecutable y te echo un cable. Yo ya que ya me metí en jardines así jajaja.
  #22 (permalink)  
Antiguo 06/02/2016, 10:27
 
Fecha de Ingreso: diciembre-2015
Mensajes: 67
Antigüedad: 8 años, 4 meses
Puntos: 2
Respuesta: Salida de un proceso?

Gracias a todos.

Etiquetas: procesos
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 23:05.