Qual é o formato do endereço usado pelo buffer de leitura de chamada do sistema?

2

Estou usando strace e a seguinte linha aparece:

leia (3, "\ 177ELF \ 2 \ 1 \ 1 \ 3 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 3 \ 0 > \ 0 \ 1 \ 0 \ 0 \ 0 \ 320 \ 3 \ 2 \ 0 \ 0 \ 0 \ 0 \ 0 @ \ 0 \ 0 \ 0 \ 0 \ 0 \ 00 \ 265 \ 31 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 @ \ 0008 \ 0 \ n \ 0 @ \ 0G \ 0F \ 0 \ 6 \ 0 \ 0 \ 0 \ 5 \ 0 \ 0 \ 0 @ \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ @ \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 @ \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0000 \ 2 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0000 \ 2 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 10 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 "..., 832) = 832

Qual é o formato do segundo argumento? Quais são todos os 0's, @ 'se \?

Estou usando o Debian com o processador Intel i5 x86_64.

    
por blz 04.04.2018 / 08:06

1 resposta

4

A string é formatada usando a sintaxe C. Caracteres não imprimíveis são mostrados usando a representação octal: os bytes nulos são mostrados como 7ELF e a mágica do arquivo ELF no início como read . A saída mostra o que o ponteiro dado como segundo argumento aponta para depois que a chamada para = 832 foi concluída. %code% no final mostra o valor de retorno.

    
por 04.04.2018 / 08:27