我正在閱讀NSNotificationCenter的NSFileHandleReadCompletionNotification消息以接收來自NSTask的消息。問題是我所調用的命令行程序對輸出行來說比較慢,而且似乎NSFileHandleReadCompletionNotification消息的發佈相對較少(我猜是什麼時候緩衝區填滿了)。我可以爲NSFileHandleReadCompletionNotification使用較小的緩衝區嗎?
是否有另一個通知消息,我可以使用它會張貼通知或每一行,或有辦法使緩衝區更小?
編輯:爲了清楚起見,我讀了NSFileHandle documentation中緩衝區大小「模仿底層操作系統的緩衝區大小」,所以我希望還有其他一些技巧。
NSFileHandle不包裝C stdio流;它包裝文件描述符。 'setvbuf'將不起作用。 (即使文件句柄在內部由流支持,您也無法訪問該流;創建自己的流並設置其緩衝模式不會影響文件句柄的流)。 – 2009-12-29 01:06:17
我很確定彼得是對的。我嘗試了你的建議(通過向我的Python任務添加-u標誌),並沒有任何改變。 我迄今爲止唯一一個嘗試過的工作是在Python腳本的輸出中添加一堆空格,這看起來非常可怕。 – oldpatricka 2009-12-29 03:33:40