Я запускаю простую команду grep в моем приложении Какао, например:
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/grep"];
NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"foo", @"bar.txt", nil];
[task setArguments: arguments];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
NSData *data;
data = [file readDataToEndOfFile];
NSString *string;
string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog (@"grep returned:\n%@", string);
[string release];
[task release];
Однако мне несколько любопытно узнать, как команды вводятся через терминал, которые не выдают результат и невыполняется быстро, если не завершено с чем-то вроде Управление + C может быть запущено с этой техникой.Что-то вроде запуска java -jar server.jar
, где он продолжает работать, пока не выйдет из сеанса.Как бы я сделал что-то подобное, когда сеанс не заканчивается автоматически после запуска команды?
Нужно ли мне просто закомментировать часть, где выпускается NSTask
?Любые предложения будут хороши!