通过NSPipe或NSFileHandle将EOF发送到NSTask

时间:2013-07-19 14:27:27

标签: cocoa stdin eof nstask nspipe

我有一个NSTask来处理从stdin传递的参数。 参数通过NSFileHandle传递。

它工作正常,但我们的命令行工具从stdin读取输入,直到它收到EOF符号(按Ctrl + C)。

我不认为我可以将EOF符号添加到ASCII字符串中,那么选项是什么? 任何反馈意见!

提前致谢!

1 个答案:

答案 0 :(得分:4)

在管道写入端调用closeFile表示EOF条件:

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

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