Ho due processi separati: un programma C che emette valori separati da virgola seguiti da una nuova riga ogni secondo e un programma Perl che accetta i dati (nello stesso formato) e li elabora.Come consentire a due processi concorrenti di comunicare?
Le uscite di programma C (via printf) valori come tale:
1, 2, 3, 4, 5, 6
7, 8, 9, 10, 11, 12
...
Il programma Perl si trova in un ciclo infinito attesa con il metodo per STDIN per elaborare questi dati:
while ($line = <STDIN>)
{
chomp($line) # Line should now read "1,2,3,4,5,6"
# Process data
}
Voglio che questi due processi comunichino in tempo reale. Le pipe bash standard non funzionano (ad esempio process1 | process2) perché il programma Perl attende che il primo programma finisca prima di elaborare l'input.
Qualcuno ha idee, suggerimenti o informazioni su una soluzione a questo problema? Grazie in anticipo!
in senso stretto, questo non ha nulla a che fare con "tempo reale" – andersoj
Hai assolutamente ragione, ho scritto questo in fretta e non riuscivo a pensare a un modo migliore per spiegare come volevo che questi processi funzionassero. Concorrente potrebbe essere stata una scelta migliore. –
Concorrente è molto meglio, e c'è un pulsante di modifica per voi per risolverlo. – derobert