我有一个与套接字一起使用并读取/写入数据的应用程序。它使用Foundation框架结合CFNetwork和stdio。
这是问题 - 当它从控制台(bash shell)启动时,它可以 100% 正常工作,并且没有任何问题。然而,当它被另一个应用程序通过 NSTask 调用时,疯狂开始了。整个应用程序变得疯狂,它只读取一次套接字然后挂断(它意味着在完成后退出)。
此应用程序不依赖环境变量或任何其他类似的东西。这也不是用户问题。当它启动时,它向服务器发送一个简单的请求,' printf '作为响应并再次读取。这会一直发生,直到接收到终止数据包。
我真的很困惑,感觉框架内有一些东西让应用程序变得疯狂,只是为了惹恼程序员。
顺便说一句,我在Mac OS X Snow Leopard上,该应用程序适用于同一平台。
编辑 1:将标准输出重定向到NSPipe会导致它。但为什么 ?