Ho fatto altre prove, creando un apposito piccolo e semplicissimo programma, che ho scritto in C:
#include <stdio.h>
int a;
void main() {
while (1) {
printf("-> %d\n", a);
sleep (1);
a++;
};
}
il quale ogni secondo scrive nello
standard output un valore numerico crescente.
Ho, poi, realizzato un piccolo applicativo in Gambas che lancia e gestisce il processo di quel programmino C con
Exec [].
Se pongo la riga del comando
Exec [] in modo essenziale:
pr = Exec ["/percorso/del/programmino/C"]
vedo scrivere nella console dell'IDE di Gambas ogni secondo i numeri crescenti.
Invece, per intercettare questi dati dalla console ad una
TextArea, posta sul Form, ho dovuto ovviamente porre in
osservazione il processo.
La differenza rispetto ai precedenti tentativi, anche in questa discussione esposti negli ultimi inteventi e nella WIKI, è che il processo va dichiarato eseguito in lettura con la parola
For Input, e
non For Read:
pr = Exec ["/percorso/del/programmino/C"] For INPUT As "prova"
Mi pare che tu, però, abbia bisogno di una dichiarazione doppia, in lettura ed in scrittura, del processo. In tal caso, Gambas non accetta la compresenza della parola
Input e della parola
Write. Pertanto, devi provare l'efficienza del tuo codice utilizzando congiuntamente le parole
Input ed
Output.