I am having troubles with popen (I am using this on a CentOS machine).
The code is like so (_oss is an ostringstream):
...
FILE* lp_pipe = popen("/opt/scripts/myscript.php", "r");
if(!lp_pipe) {
return false;
}
char l_buffer[256];
while(!feof(lp_pipe))
{
if(fgets(l_buffer, 256, lp_pipe) != NULL)
_oss << l_buffer;
}
pclose(lp_pipe);
....
Now this was working fine until someone changed the php script. When I run the script from the commandline I still see the expected result, however the code doesn't work anymore. The first time fgets
is called it now returns NULL and afterwards feof(lp_pipe)
returns 1