On C++, conflict between strstream variable and popen() func

Someone knows
why defining a strstream variable and using a popen() a SIGCHLD arrived ?

example:


stream problem(static_buf,2048);


void main(int argc, char **argv)


fd=popen(cmd,“r”);
while (!feof(fp))
{
fscanf(fp, “%s “, stringa);
// printf(”%s”,stringa);
}

during the while () loop a SIGCHLD arrived !!!.
(this is not true if you comment the strstream variable.)

Does someone know why ???

Thank’s in advance.