Вы можете использовать селектора setStandardInput:
, setStandardOutput:
и setStandardError:
NSTask в сочетании с экземплярами NSPipe для связи с запущенной программой.
Например, чтобы прочитать вывод задачи:
task = [[NSTask alloc] init];
[task setStandardOutput: [NSPipe pipe]];
[task setStandardError: [task standardOutput]]; // Get standard error output too
[task setLaunchPath: @"/usr/bin/gdb"];
[task launch];
Затем вы можете получить экземпляр NSFileHandle
, который вы можете использовать для чтения вывода задачи с помощью:
NSFileHandle *readFromMe = [[task standardOutput] fileHandleForReading];
Чтобы настроить канал для отправки команд в gdb, вы должны добавьте
[task setStandardInput: [NSPipe pipe]];
перед запустите задачу. Затем вы получаете NSFileHandle
с
NSFileHandle *writeToMe = [[task standardInput] fileHandleForWriting];