CITAZIONE
Dunque, ok per il monodirezionale ma continuo a pensare che quelle close() siano errate... magari prova!
Vedo che sono citati i socket anche qua, e quindi torno a pensare che decisamente siano una soluzione migliore! Tra l'altro l'indirizzo 127.0.0.1 dovrebbe essere disponibile sempre anche se non c'è la scheda di rete, per quanto poi oggigiorno tutti hanno una scheda di rete.
Stavo però pensando anche... non dovresti "aspettare", specie in lettura, che i dati siano presenti? Il tuo codice "passa" attraverso le write (diciamo che questo è ok) e le read (e qua non so...) senza aspettare che i dati siano passati... qualcosa tipo un "check data ready"?
Be' il senso ce l'ha sempre
per imparare!
dopo posto un programma trovato in rete, sembra usino close nello stesso modo.
Si, i socket penso siano meglio. Da quanto ho capito, le pipes, sono uno dei primi metodi e forse anche i più
rudimentali. Avevo fatto prove anche con i socket. Mi sono imbattuto nelle pipes, per puro diletto ed esercizio.
CITAZIONE
Stavo però pensando anche... non dovresti "aspettare", specie in lettura, che i dati siano presenti? Il tuo codice "passa" attraverso le write (diciamo che questo è ok) e le read (e qua non so...) senza aspettare che i dati siano passati... qualcosa tipo un "check data ready"?
allora, quando io scrivo il buffer write (se non erro di pochi kb), manda i dati alla read. Read appena riempie il buffer, blocca write che aspetta lo svuotamento...se dico giusto...
questo finchè la chiamata è atomica (inferiore al buffer). nel caso contrario le cose potrebbero essere diverse.
Come detto, i dettagli sono molti, e occorrono parecchie prove e studio.
Cosa che al 99% in Python& company, non ti devi preoccupare...ma è bello anche imparare.
Per esempio in set di python, vengono implementate le tabelle di hash, cosa che se non hai scritto in C
non sai nemmeno cosa sono, come sono gestite le collisioni: indirizzamento aperto ? Liste di trabocco ???
Insomma il C non è propriamente semplice