0

popen に問題があります (CentOS マシンで使用しています)。

コードは次のようになります (_oss は 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);

  ....

誰かがphpスクリプトを変更するまで、これはうまく機能していました。コマンドラインからスクリプトを実行すると、期待どおりの結果が表示されますが、コードが機能しなくなります。初めてfgets呼び出されると NULL が返され、その後feof(lp_pipe)は 1が返されるようになりました

4

0 に答える 0