Originariamente inviato da Manugal
Aspetta perché non ho capito molto bene. Allora io ho pensato di fare una cosa del genere. Creo una variabile del tipo FILE* fpipe[num_comandi].
Ovvero un array di puntatori a file.
Dopo Creo un figlio e poi nel figlio, per ogni comando da eseguire, (quindi facendo per esempio for(i=0; i<num_comandi; ++i) ) lancio la popen di quel comando con il flag w
Ma tu devi inviare ("w") o ricevere ("r") i dati ai tuoi eseguibili ?
(non conosco la _popen che hai scritto tu).
Scusa, che compilatore stai utilizzando ?
Comunque sono la stessa cosa, ed il prototipo delle due funzioni è uguale
FILE *_popen (const char *command, const char *mode);
FILE *popen(const char *command, const char *mode);
A questo punto cosa dovrei fare? Catturare l'output in un buffer come hai scritto tu?
Si
E dopo come faccio a redirezionare questo buffer in input al successivo programma?
Che tipo di output restituiscono i programmi ?
Ti occupi tu di parsare questo output ?
Come lo avvii questo programma successivo ?
Comunque in generale, devi accodare l'output del primo programma alla linea di comando
che avvia il secondo.
Se avvii
Programma1.exe
che ti restituisce
"1"
il successivo programma lo avvierai così
Programma2.exe 1
Ovvero risolvi con una strcat (ricordati di aggiungere lo spazio fra ogni parametro)
A questo punto se mostri il codice, riusciremo a fare un pò più di chiarezza .