Подтвердить что ты не робот

Cocoa/Objective-C Выполнение командной строки оболочки

Это, наверное, глупый вопрос, но как я могу выполнить команду оболочки из моего приложения Cocoa?

У меня есть команда как строка "command", но вы можете легко манипулировать данными по мере необходимости.

Нет необходимости получать возвращаемое выходное значение.

4b9b3361

Ответ 1

NSTask довольно легко сделать это. Для синхронного вызова вы можете использовать что-то вроде этого фрагмента:

NSString *path = @"/path/to/executable";
NSArray *args = [NSArray arrayWithObjects:..., nil];
[[NSTask launchedTaskWithLaunchPath:path arguments:args] waitUntilExit];

Вызов -waitUntilExit завершает работу перед продолжением. Если задача может быть асинхронной, вы можете удалить этот вызов и просто позволить NSTask сделать это.

Ответ 2

Если вы просто хотите что-то запустить и не заботитесь о коде вывода или возврата (например, вы хотите коснуться файла), вы можете просто сделать

system("touch myfile.txt");

Легко, как это.

Ответ 3

NSTask

Используя класс NSTask, ваша программа может запускать другую программу в качестве подпроцесса и может контролировать выполнение этих программ.