Это \x20
пространство.
Это \x20
пространство "
".
Шестнадцатеричный префикс \x
является одним из 3 способов lsof
печати непечатных символов.
Пробел в таблице ASCII имеет значение 32 в десятичной системе счисления, 20 в шестнадцатеричном и 040 окт .
Как правило, только символы со восьмеричным значением ASCII в пределах 040 и 176 считаются «печатными» для isprint [ isprint ] (см. Таблицу). В десятичном виде включены символы в пределах [32-126].
Интересно отметить, что пробел является печатным символом для isprint
[ isprint, isprint C ++ ], даже если он не имеет графического представления [*] и часто используется в качестве разделителя полей.
Следовательно, в человеке мы находим дополнительную строку только для пробела [ 1 ] и в столбце КОМАНДА:
Lsof выводит только печатаемые (объявленные так isprint (3) ) 8-битные символы .
Непечатные символы печатаются в одной из трех форм:
- форма C '\ [bfrnt]';
- форма управляющего символа `^ '(например,` `^ @' ');
- или шестнадцатеричная ведущая форма '\ x' (например, `` \ xab '').
Пробел нельзя распечатать в столбце COMMAND (`\ x20 ') и распечатать в другом месте.
(отступ и жирный шрифт мои)
Почему пробел не печатается?
Здесь интересно узнать, почему он считается «не для печати» .
По соображениям безопасности, как мы можем прочитать из FAQ [ 2 ] :
14.5.1 Почему пробел считается непечатаемым символом в именах команд?
Space is considered an unprintable character in command names because it is sometimes possible to hide the full command name from scripts that parse ps(1) output by embedding a space in the name.
Еще несколько слов
Если вас раздражает этот вывод, вы можете прочитать раздел « ВЫХОД ДЛЯ ДРУГИХ ПРОГРАММ » этого lsof
человека и -F
спецификации опций:
Если указана опция -F, lsof создает вывод, который подходит для обработки другой программой, например, скриптом awk, Perl или программой на Си.
...
[*] Примечание: существует другая функция с именем isgraph
[ isgraph C ++ ], которая проверяет, является ли символ c графическим представлением, но практически отвечает true для всех тех символов, которые могут быть напечатаны (например, isprint), кроме символа пробела.