2012-06-18 4 views
2

Мне стало скучно раньше и задавались вопросом, можете ли вы выполнять команды терминала на платформе iOS. Наверняка достаточно, как OSX вы можете. Это действительно потрясающе, но как мне выводить вывод терминала в текстовую область или что-то подобное? Это ничего серьезного, просто забавный проект.
Я использую систему ("") для этого.iPhone SDK: System() вопросы

ответ

1

Это, мой друг, является одним из недостатков использования system. Я также надеюсь, что вы понимаете, что system недоступен для iDevice без jailbroken, поэтому, если вы не устанавливаете его как указано в ответе # 1 на iPhone App Minus App Store, вы не сможете его использовать.

Теперь, двигаясь вперед, у вас есть несколько вариантов.

  1. Проведите вывод команды в файл и прочитайте этот файл в своем приложении. Ваш код должен выглядеть следующим образом:

    system("myCommand -f \"/path/to/my/file\" > output.txt") 
    
    NSString *results = [NSString stringWithContentsOfFile:@"output.txt" usedEncoding:nil error:nil]; 
    NSLog(@"%@", results); 
    
  2. Создать процесс с функцией popen, а затем передать выходные данные непосредственно в приложение:

    NSFileHandle *openProcessRead(const char *command) 
    { 
        FILE *fPtr = popen(command, "r"); 
    
        NSFileHandle *fileHandle = [[NSFileHandle alloc] initWithFileDescriptor:fileno(fPtr) closeOnDealloc:YES]; 
    
        return fileHandle; 
    } 
    

    Теперь вы можете использовать NSFileHandle документы, чтобы сделать что вам нужно.

+0

Позор о его взломанной исключительной исключительности. Но мне просто нужно что-то простое для меня использовать. Отличный ответ! Спасибо за полезный совет! :) –

Смежные вопросы