ソケットで動作し、データの読み取り/書き込みを行うアプリケーションがあります。CFNetworkおよびstdioと組み合わせたFoundationフレームワークを使用します。
ここに問題があります-コンソール(bashシェル)から起動すると、100%正常に動作し、問題はありません。ただし、NSTaskを介して別のアプリケーションによって呼び出されると、狂気が始まります。アプリケーション全体が異常になり、ソケットを1回だけ読み取ってから、電話を切ります(完了後に終了することを意味します)。
このアプリケーションは、環境変数などに依存していません。ユーザーの問題でもありません。起動すると、サーバーに単純な要求を送信し、「printf」が応答を送信して再度読み取ります。これは、終了パケットが受信されるまで発生します。
私は本当に混乱していて、フレームワークの中に何かがあり、プログラマーを怒らせるためだけにアプリを狂わせているように感じます。
ちなみに、私はMac OS X Snow Leopardを使用しており、アプリケーションは同じプラットフォーム用です。
編集1: stdoutをNSPipeにリダイレクトと発生します。しかし、なぜ ?