View Full Version : [C] Funzione che cattura output
Esiste in C una funzione che cattura l'output di un comando Linux, come la funzione qx() di PerL?
ilsensine
02-11-2005, 09:04
Puoi usare delle pipe, per connettere stdin/stdout/stderr a descrittori del tuo programma.
Puoi usare delle pipe, per connettere stdin/stdout/stderr a descrittori del tuo programma.
Ok grazie
ilsensine
02-11-2005, 13:33
Attento a non usare la chiamata "system" in questo modo. Un pipe diventa bloccante quando il buffer di trasmissione si riempie (e riempirlo è facile, visto che contiene solo una o due pagine di memoria), è necessario quindi che chi legge lo "svuoti" continuamente. Ciò non avviene con la system, in quanto il chiamante (che dovrebbe leggere il pipe) blocca sulla wait in attesa che il child termini (e il child si ritroverà bloccato se riempie il buffer del pipe).
L'utilizzo corretto è tramite la fork.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.