我在我的OS X应用程序中启动了一些交互式过程,我希望能够从管道读取和写入。
例如:启动进程将等待用户键入命令。当用户完成(也就是按下回车)时,进程将返回一些内容然后再等待用户。
目前,我正在使用overflow: hidden
类进行通信,但问题是在调用方法NSPipe
时,我必须调用writeData:
才能获得通知{{1 }}。
完整代码(包含更改的文件夹路径)是
closeFile
请注意,我收到第一个通知(进程正在响应),但调用NSFileHandleDataAvailableNotification
后没有通知。
如何实现沟通:
启动(并通过应用程序生命周期保持启动)
写作和阅读
答案 0 :(得分:1)
您需要为发送到管道的任何命令附加换行符,方式与交互式方式相同。新行刷新流缓冲区,通常是命令的“go”部分。
但是,我找不到任何重新强制执行此答案的提法。