@Unquice

Как создать свой агрумент(флаг) для запуска програмы в терминале?

В кратце, сейчас же карантин и нужно выполнять все по дистанционнке и получил такое задание
- 1. Разработать два приложения для Linux, первое из которых: а) при задании ключа -w имя-исполняемого-файла - запускает заданное приложение (с поиском его в системном пути, заданном переменной окружения PATH) - ожидает завершения приложения и выводит сообщение о завершении на экран вместе с кодом возврата б) при задании ключа -f имя-исполняемого-файла - запускает заданное приложение (с поиском его в системном пути, заданном переменной окружения PATH) - немедленно продолжает выполнение (асинхронный запуск)

Изначально пробовал писать через getopt но ничего из этого не получилось , может кто в этом разбирается можете дать подсказку (наставление) как правильно это сделать ?
Язык C/C++

Буду очень благодарен.
  • Вопрос задан
  • 181 просмотр
Решения вопроса 3
@pfg21
ex-турист
все указанное можно сделать на баше.
небольшой набор поисковых запросов помогут тебе написать необходимые строчки.
Ответ написан
@anikavoi
параметры в argc/argv
system из <cstdlib> (<stdlib.h> для C) сам великолепно разбирается с PATH.
возвращаемое значение получать WEXITSTATUS(status) https://linux.die.net/man/3/system
Если захреначить в конец аргумента system амперсанд, то будет асинхронность (https://stackoverflow.com/questions/6962156/is-the... естественно без всякого возвращаемого значения, но оно кильнется, вместе с родителем, так что wait-sleep в помощь.
Ответ написан
Комментировать
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Берете любую консольную прогу из стандартных, открываете исходник и смотрите, как сделано. Есть getopt(), который обрабатывает "короткие" ключи типа -a, -b, -1 ... Есть getopt_long(), который обрабатывает "длинные" ключи (и "короткие" тоже) типа "--eto-zhopa, --eto-ruchka"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Язык C/C++


У вас в main параметрами приходят аргументы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы