Someone knows
why defining a strstream variable and using a popen() a SIGCHLD arrived ?
popen() creates a child process. If that child has died, then it is normal
for a SIGCHLD to get delivered to the parent.
I think the default behaviour for SIGCHLD is for it to be ignored, have
you modified your handling of SIGCHLD? Maybe C++ library for strstream
modifies it? I don’t know the internals of the C++ library well enough.