Originariamente inviato da grisson
Allora, ho un programma scritto in c che funziona da riga di comando ed un programmino ad interfaccia grafica che deve comandare il programma a riga di comando.
la gui la sto creando con glade e anjuta (ubuntu), però non so come scrivere e leggere dalla riga di comando.
cioè, il programma a riga di comando lo avvio normalmente (exec), ma poi questo ha bisogno ad un certo punto dell'elaborazione di un comando, e a seconda di questo mi da diversi output nel tempo.
come faccio a dare al programma quel comando e leggere man mano gli output che vengono restituiti???
Visto che parli di Linux, devi usare delle "pipe". In pratica prima di fare fork+exec, devi creare una pipe, poi nel processo figlio, prima della exec, devi cambiare i descrittori dello standard-input/output (uno solo o entrambi ... dipende da cosa devi farci) del processo child in modo che il processo padre possa poi scrivere/leggere attraverso le pipe.

Vedi: http://www.gnu.org/software/libc/man...ipes-and-FIFOs