У меня есть приложение, которое работает с сокетами и читает / записывает данные. Он использует Foundation framework в сочетании с CFNetwork и stdio .
Вот в чем проблема - когда он запускается из консоли (оболочка bash), он работает на 100% нормально и в этом нет ничего плохого. Однако, когда он вызывается другим приложением через NSTask, начинается безумие. Все приложение становится безумным, и оно только один раз читает сокет, а затем зависает (оно должно завершиться после того, как это будет сделано).
Это приложение не зависит от переменных среды или каких-либо других подобных вещей. Это не проблема пользователя. Когда он запускается, он отправляет простой запрос на сервер и ' printf ' отвечает и читает снова. Это происходит до тех пор, пока не будет получен пакет завершения.
Я действительно запутался, и мне кажется, что внутри фреймворка есть что-то, что делает приложение безумным, просто для того, чтобы разозлить программиста.
Кстати, я на Mac OS X Snow Leopard и приложение для той же платформы.
РЕДАКТИРОВАТЬ 1: Перенаправление stdout на NSPipe вызывает его. Но почему?