https://foro.gambas-es.org/viewtopic.php?f=1&t=6402&p=38368#p38368
-----------------------------------
vuott
Domingo, 28 May 2017, 03:34

Re: Escribir En Un Proceso...
-----------------------------------
...por supuesto es tambien posible enviar un valor a un programa, escrito en C, abierto y gestionado con la Clase [i]Process[/i] por un programa Gambas.

[i]Exemplum simplex[/i].
Vamos a escribir en un editor de texto este simple codigo fuente del programa C:
[code linenumbers=false syntax=c]#include <stdio.h>


int main() {

	char s[24];

	do {

		fgets(s, 24, stdin);

	} while(NULL==s);

	printf("%s\n", s);

	return (0);

}[/code]
Este codigo debe ser compilado así:
 ~ $ [color=#A50000]gcc -o /ruta/del/programa/compilado /ruta/del/codigo/fuente.c[/color]


El codigo del programa principal en lenguaje Gambas es:
[code linenumbers=false syntax=gambas]Private pro As Process


Public Sub Button1_Click()

  AbreFluxo()

End


Private Procedure AbreFluxo()
  
  pro = Shell "/ruta/del/programa/compilado" For Write
  
End


Public Sub Button2_Click()

' Escribe una cadena anti-pythonista en el proceso del programa escrito en C:
  Write #pro, "Yo no soy Pythonista !"
  
  pro.Close
  AbreFluxo()

End


Public Sub Button3_Click()

  pro.Close
  pro.Kill
  Me.Close

End[/code]


Por tanto, el programa Gambas enviará la cadena a el programa escrito en C.
Como funciona...
1) en un Terminal lanzar el programa Gambas;
2) presionar [i]Button1[/i] para lanzar el programa escrito en C y ya compilado;
3) presionar (cuanto quiereis) [i]Button2[/i] para escribir la cadena [i]anti-pythonista[/i] en el proceso del programa escrito en C;
4) para cerrar todo, presionar [i]Button3[/i]
[u]Para acabar todo, matando el proceso, no olvidéis de presionar [i]Button3[/i][/u] !!!


