Поскольку вы говорите о приложении , вам не нужно проходить через механизмы сопоставления файлов.Они предназначены для открытия документов, изображений и т. Д. С соответствующим приложением.Поскольку вы, похоже, не знаете, о чем спрашивать, я бы сказал, что будьте проще:
Семейство exec*
запускает исполняемый файл напрямую.Но обратите внимание, что заменяет процесс запуска запущенным приложением.Ваш лаунчер прекратит работу в этот момент.Если вы хотите, чтобы программа запуска продолжала работать, вы хотите использовать что-то, что запускает подпроцесс.Низкоуровневый способ - fork/vfork
, за которым следует exec
, но гораздо проще запустить ваше приложение с system
, которое позаботится обо всем этом за кулисами.(Предполагая, что нет проблем с безопасностью для пользователей на другой стороне мира, внедряющих пути выполнения).
Если средство запуска не завершает работу, как только оно запускает ваше приложение, вам следует подумать о том, будет ли оно «блокироваться» до тех пор, пока не завершится запущенное приложение, или же оно запускает приложение асинхронно - так, чтобы онизатем запустить параллельно.Модуль запуска также может «дождаться» возвращаемого значения приложения, чтобы проверить, успешно ли оно выполнено, и, возможно, что-то сделать после этого.Есть способы сделать все это, но так как мы не знаем, что вам нужно, я не буду вдаваться в подробности.
Короче говоря: Если единственная работа вашей программы запускачтобы запустить приложение, используйте execl
.Если вашей программе запуска требуется больше, используйте system
.Если ни один из них не соответствует вашим потребностям, вам необходимо предоставить больше информации - начиная с языка, на котором написан ваш модуль запуска.
PS.Оба из них имеют преимущество универсальности и портативности.Они работают для приложений с графическим интерфейсом и командной строки, и они будут работать в любой Unix-подобной системе, и в некоторой степени в Windows.Нет необходимости запираться в Какао для чего-то такого простого.