У меня есть приложение, написанное на C, которое использует fgets для чтения пользовательских команд из stdin. Я хочу, чтобы моя встроенная система Linux запускала это приложение при запуске и помещала пользователя в терминал этого приложения.
Я могу запустить приложение при запуске с помощью bash-скрипта:
./my_app
но приложение, похоже, не получает stdin от пользовательского терминала.
Если я подожду, пока войду в Linux, а затем запущу приложение вручную из терминала, я смогу нормально с ним взаимодействовать.
Есть ли способ запустить программу автоматически (например, с помощью скрипта запуска), а затем передать управление пользователю, как если бы пользователь сам запустил программу?
решение1
Я нашел то, что искал:
exec ./my_app
заменяет обычный терминал Linux на приложение. Недостаток в том, что нельзя нажать Ctrl + C, чтобы вернуться в Linux, но для меня это не важно, так что это делает свое дело.