Как отправить данные на терминал Linux - PullRequest
0 голосов
/ 17 марта 2020

Мне нужно отправить данные на терминал Linux, чтобы терминал мог получать данные с помощью scanf? есть ли способ сделать это?

Я попытался записать свои желаемые данные в / proc / pid / fd / 1 с помощью команды ниже, однако я могу видеть записанные данные в терминале, но scanf не смог поймать эти данные и все еще ждать ввода данных пользователем.

printf "85\n"  > /proc/24737/fd/1

1 Ответ

1 голос
/ 17 марта 2020

Это очень интересный вопрос, и нет простого способа (о котором я знаю) писать в другой терминал, используя файловые дескрипторы. см. https://unix.stackexchange.com/questions/385771/writing-to-stdin-of-a-process

Однако, у Unix и Linux есть много отличных способов для IP C (межпроцессное взаимодействие). Возможно, вы захотите изучить трубы, именованные каналы или сокеты.

В зависимости от того, что вы делаете, вы можете подумать о popen или screen.

Возможно, вы не хотите писать в терминал, но задача, которая выполняется на терминале? Можете ли вы изменить способ вызова (вызова) задачи? Вам нужно использовать стандарт в других целях?

Если вы объясните свой вариант использования, мы постараемся лучше вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...