Почему получаемые мной байты не те, что я отправил?

файл с большинством жестких ссылок

Вы можете использовать команды

  1. find с (GNU? ) опцией -xdev, а также командой -printf и ее директивами %n и %p
  2. sort -rn
  3. head -n 1

Конечно, могут быть разные файлы (inodes) с одинаковым количеством жёстких ссылок. Если найти один из них недостаточно, то решение становится более сложным.

поиск других путей к файлу / inode

Можно воспользоваться командой find с опцией -xdev, а также тестом -samefile.

0
28.09.2015, 03:03
1 ответ

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

Не уверен, что 0x84 интерпретируется как 7-битный код ascii, но 0x04 был бы эквивалентен символу Ctrl-D (EOF), который bash отклонит, если не будет введен в начале строки. Bash отправит на терминал символ 0x07 (BEL), чтобы позвонить в звонок (звуковой сигнал). 0x08 - это символ обратного пробела (BS), который bash повторяет escape-последовательность ANSI (ESC [K) (\ x1b \ x5b \ x4b), которая поддерживает курсор ввода на один пробел влево.

В интерактивном терминале попробуйте ввести символы «t», и вы сможете воспроизвести программный вывод, который вы видите, с близким приближением.

Возможно, эти байты следует отправить на вход другой программы вместо bash или sh?

2
28.01.2020, 02:35

Теги

Похожие вопросы