On Tuesday 02 March 2004 23:45, Jan Trippler wrote:
Wohl eher nicht - da kommen stdout und stderr nämlich nicht an. IMHO geht sowas nur über dup2(), pipe(), fork() und exec().
Wenn nur stdout gefragt wäre, könnte man die Ausgaben mit popen() kriegen, aber dann fehlt immer noch stderr (eine Umleitung mit 2>&1 im Kommando hilft auch nicht wirklich, es sei denn, man kann die Meldungen im Text unterscheiden und dann parsen).
popen() ist nur ein sehr dünner Wrapper um fork()/exec()/pipe() - für den
Normalfall, nämlich daß man nicht stderr und stdout des gestarteten Programms
getrennt umleiten will. Wenn man das doch will, muß man eben selber das tun,
was popen() auch tut - und eben mit (low-level) pipe() stderr auf einen
anderen File-Deskriptor umleiten.
Siehe "man pipe".
CU
--
Stefan Hundhammer