Содержимое AIX /proc/
должно быть структурировано в соответствии с struct pstatus
, определенным в
включаемом файле. Насколько мне известно, для файловой структуры /proc/
не существует стандарта, поэтому любое чтение /proc
следует рассматривать как специфичный для ОС -код. Не ждите строгого -для -одного сопоставления для каждого элемента данных, который вы можете найти в Linux /proc
в любой другой ОС :данные могут быть расположены совсем по-другому, или некоторые элементы данных могут полностью отсутствовать.
См. документацию IBM:https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/filesreference/proc.html
Для C API, как правило, считывают /proc/
в буфер подходящего размера (или mmap()
его ), приводят указатель буфера/mmap в (struct pstatus *)
и используют его для доступа к элементам данных..
В зависимости от того, какая именно информация о состоянии вам нужна, вам может потребоваться прочитать другие файлы в том же каталоге, используя их эквивалентные типы структур для доступа к элементам данных.
Вы не отправляете нажатия клавиш.
Неблагоприятно -рассматриваемое TIOCSTI
управление вводом-выводом вставляет символы во входной поток терминального устройства. Этот поток является результатом после того, как нажатия клавиш были преобразованы в последовательности символов. Это (необработанный )поток символов, видимый прикладными программами, которые считывают ввод с терминала.
Нажатия клавиш, которые прокручивают буфер прокрутки вверх и вниз, удаляются из ввода перед тем, как превращаются в последовательности символов для помещения в этот поток. Невозможно внедрить их с помощью TIOCSTI
. Они есть,Что касается модели ввода-вывода терминала POSIX, то они полностью обрабатываются локально внутри терминала и никогда не видны хосту. (Тот факт, что терминал не является настоящим терминалом, а представляет собой программу-эмулятор, работающую в ядре на хосте, не меняет этого.)
Чтобы ввести нажатия клавиш в KVT, используйте устройство uinput
для генерации необходимых событий ввода evdev. Что касается KVT, входные события evdev концептуально являются внутренними для самого (эмулируемого )терминала и подлежат любой локальной обработке внутри терминала перед отправкой на хост.