2013-07-19 44 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