Отправка EOF в NSTask через NSPipe или NSFileHandle
У меня есть NSTask, который обрабатывает аргументы, переданные из стандартного ввода. Аргументы передаются через NSFileHandle
,
Он работает нормально, но наш инструмент командной строки читает ввод из stdin, пока не получит символ EOF (нажав Ctrl+C).
Я не думаю, что смогу добавить символ EOF в строку ASCII, так что будет с вариантами? Любые отзывы приветствуются!
Заранее спасибо!
1 ответ
Решение
Призвание closeFile
на пишущем конце трубы сигнализирует условие EOF:
NSPipe *inPipe = [NSPipe new];
[task setStandardInput:inPipe];
[[inPipe fileHandleForWriting] writeData:...];
// ...
[[inPipe fileHandleForWriting] closeFile];