2013-07-19 41 views
0

我有一個NSTask處理從標準輸入傳遞的參數。 參數通過NSFileHandle傳遞。通過NSPipe或NSFileHandle發送EOF到NSTask

工作正常,但我們的命令行工具從標準輸入讀取輸入,直到它接收到EOF符號(通過按Ctrl + C)。

我不認爲我可以將EOF符號添加到ASCII字符串,那麼選項是什麼? 任何反饋讚賞!

在此先感謝!

+0

按Ctrl-c不是EOF;它是SIGINT(中斷)。此外,EOF不是一個字符;它是文件的結尾。因此,要「發送EOF」,您只需結束文件。 –

回答

4

調用在管的書寫端closeFile信號EOF條件:

NSPipe *inPipe = [NSPipe new]; 
[task setStandardInput:inPipe]; 

[[inPipe fileHandleForWriting] writeData:...]; 
// ... 
[[inPipe fileHandleForWriting] closeFile]; 
+0

看起來不錯,會試試! – guitarflow