O \x20
é um espaço.
O \x20
é um espaço "
".
O prefixo hexadecimal \x
é uma das três formas de lsof
imprimir os caracteres não imprimíveis .
O espaço na tabela ASCII tem valor 32 no sistema numeral decimal, 20 em hex e 040 oct .
Como regra, apenas os caracteres com o valor ASCII octal entre 040 e 176 são considerados "imprimíveis" por isprint [isprint ] (veja a tabela). Em decimal são incluídos os caracteres dentro de [32-126].
É interessante notar que o espaço é um caractere imprimível para isprint
[ isprint , isprint C ++ ] , mesmo que não tenha representação gráfica [*] e é frequentemente usado como um separador de campos.
Assim, no homem, encontramos uma linha suplementar apenas para o espaço [ 1 ] e na coluna COMMAND:
Lsof only outputs printable (declared so by isprint(3)) 8 bit characters.
Non-printable characters are printed in one of three forms:
- the C '\[bfrnt]' form;
- the control character '^' form (e.g., ''^@'');
- or hexadecimal leading '\x' form (e.g., ''\xab'').
Space is non-printable in the COMMAND column (''\x20'') and printable elsewhere.
(recuo e negrito são meus)
Por que o espaço é um caractere não imprimível?
Interessante aqui é saber por que é considerado "não imprimível" .
Parece, por razões de segurança, como podemos ler no FAQ [ 2 ] :
14.5.1 Why is space considered a non-printable character in command
names?
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.
Algumas palavras mais
Se você está irritado com esta saída, você pode considerar ler o
OUTPUT FOR OTHER PROGRAMS das especificações da opção lsof
man e -F
:
When the -F option is specified, lsof produces output that is suitable
for processing by another program - e.g, an awk or Perl script, or a C program.
...
[*] Nota: Existe outra função chamada isgraph
[ isgraph C ++ ] que verifica se c é um caractere com representação gráfica, mas praticamente responde a todos os caracteres que podem ser impressos (como isprint), exceto o caractere de espaço.