
6 May
2010
6 May
'10
1:26 p.m.
DeĀ : Dan Stahlke
I've been having difficulty using iostreams::file_descriptor_sink with popen in Linux. The problem is that popen() requires a matching pclose() rather than a close(). Now, file_descriptor_sink has a close_on_exit flag that, when set to false, supposedly prevents it from calling close() on the underlying file descriptor, but it calls close() anyway. Is this a bug in boost or am I doing it wrong? As a workaround I can call flush () on the iostream and then pclose() on the filehandle, but it seems like it would be better to actually close the iostream.
That looks a lot like this ticket: https://svn.boost.org/trac/boost/ticket/3517 A workaround is to explicitly call set_auto_close(false).