通过 NSPipe 或 NSFileHandle 将 EOF 发送到 NSTask

gui*_*low 0 cocoa stdin nstask eof nspipe

我有一个 NSTask 处理从标准输入传递的参数。参数通过NSFileHandle.

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

我不认为我可以将 EOF 符号添加到 ASCII 字符串中,那么有哪些选项呢?任何反馈表示赞赏!

提前致谢!

Mar*_*n R 5

调用closeFile管道的写入端发出 EOF 条件的信号:

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

[[inPipe fileHandleForWriting] writeData:...];
// ...
[[inPipe fileHandleForWriting] closeFile];
Run Code Online (Sandbox Code Playgroud)