2015-09-07 4 views
0

Я хотел бы выполнить командную строку в iPhone iOS с объектным проектом Xcode C, я использовал функцию system(), но это не сработает!Как выполнить командную строку в iPhone?

Я установил ssh на моей джейлбрейке iPhone и проверил это приложение, и я пишу этот код в приложении, которое я делаю

system('id > /tmp/id'); 

После установки и запуска программного обеспечения нет файла в /tmp/id.

Как я могу это исправить? Нет никаких проблем, если я тоже помогу в Swift, я просто хочу выполнить командную строку.

ответ

0

Вы можете попробовать использовать NSTask:

Using the NSTask class, your program can run another program as a subprocess and can monitor that program’s execution.

Что-то вроде этого:

let task = NSTask() 
task.launchPath = "/bin/bash" 
task.arguments = ["arg1", "arg2", "arg3"] 
+0

Спасибо за ответ, я использовал этот код и «импорта Foundation» в первой строке кода, но она по-прежнему дает мне сообщение об ошибке: 'Использование неразрешенного идентификатора«NSTask'', не я что-то отсутствует? Я думаю, что это просто работает для mac os x, а не ios – user3671325

+0

Вы правы, [NSTask] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSTask_Class/) доступен только для Mac OS. Вы не сможете ничего выполнить из командной строки на iOS без джейлбрейка. – tylersimko

+0

мой телефон джейлбрейк, как я могу выполнить командную строку? Я использовал 'system()' и 'execv()' в объекте-c, но все равно не работает! – user3671325

1

Ваш код должен работать нормально с помощью системной функции, но есть несколько моментов:

1) Если это проект Xcode, он будет изолирован даже от взломанного iPhone, поэтому ваше приложение не сможет писать в «/ tmp». Вместо этого используйте путь для записи приложения.

2) В любом случае при вызове системы() вы должны использовать абсолютный путь к вашему исполняемому файлу, например. :

system('/usr/bin/id > /tmp/id'); 
+0

спасибо, можете использовать скажите, пожалуйста, какой путь для записи приложения? – user3671325

+0

как я могу отключить песочницу и использовать 'system ('/ usr/bin/id>/tmp/id')'? Я видел, как iphone имеет программное обеспечение ssh, как это работает? – user3671325

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