我有一个适用于插座的应用程序,并读取 /写入数据。它用 基础 框架合并 cfnetwork斯蒂奥.

这是问题 - 当它从控制台(bash shell)启动时,它可以效果100%罚款,没有错。但是,当通过NSTASK MADNESS通过另一个应用程序调用它时。整个应用程序变得疯狂,仅读取插座,然后挂起来(完成后将退出)。

该应用程序不依赖环境变量或任何其他类似的东西。这也不是用户问题。启动时,它将向服务器发送简单的请求,并'printf响应并再次阅读。直到收到终止数据包,这种情况就会发生。

我真的很困惑,感觉就像框架内部有些东西使应用程序发疯只是为了惹恼程序员。

顺便说一句,我在 Mac OS X雪豹 该应用程序适用于同一平台。

编辑1: 重定向 Stdout 到一个 nspipe 引起它。但为什么 ?

有帮助吗?

解决方案

libc 以不同的方式处理管道/文件和连接到(伪)端子的控制台。特别是,默认缓冲策略是不同的。参见广泛的讨论 在此堆栈溢出问答中.

因此,完全可以想象的是,连接到(伪)终端的程序无法与管道使用。如果您需要更具体的建议,则需要(至少在骨架上)您的代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top