devo aprire un sottoprocesso usando popen, il processo continuamente chiedere input dell'utente ... Il processo principale deve inviare tali dati sul tubo.continuamente scrivere al sottoprocesso usando popen in C++
Questo è il mio primo tentativo:
FILE *in;
char buff[1024];
if(!(in = popen("cd FIX/fix2/src; java -cp .:./* com.fix.bot", "w"))){
return 1;
}
while(1){
char buffer[] = { 'x' };
fwrite(buffer, sizeof(char), sizeof(buffer), in);
cout << "Wrote!" << endl;
usleep(1000000);
}
Tuttavia i dati non vengono inviati! Ho bisogno di chiudere la pipe con pclose() in modo che i dati vengano scritti nel processo. Come posso assicurarmi di scrivere i dati senza dover chiudere il tubo ogni volta?
è possibile che la tua app stia cercando l'input terminato con un \ n? Perché non stai inviando una LF adesso ... –
Non dimenticare di controllare il risultato di 'fwrite()' Non penso che garantisca di scrivere tutto ciò che richiedi. Di solito lo fa, ma è necessario convalidare. –