Voltar à lista
Linux x86_64Sistema & diversos#103

syslog

Lê ou controla o buffer de mensagens do kernel (dmesg) e o nível de log do console.

Descrição

É a syscall por trás de `dmesg(1)` e `klogd`; não deve ser confundida com a função de biblioteca `syslog(3)`, que envia mensagens ao daemon de log via socket, sem relação direta com esta chamada.

man 2

Nota

Acesso restrito por padrão a processos com CAP_SYSLOG (ou controlado pelo sysctl `kernel.dmesg_restrict`), já que o buffer pode conter endereços de memória do kernel úteis para atacantes.

Assinatura

int syslog(int type, char * bufp, int len);

Parâmetros

ParâmetroTipoDescrição
typeintAção: SYSLOG_ACTION_READ, SYSLOG_ACTION_READ_ALL, SYSLOG_ACTION_CLEAR, etc.
bufpchar *Buffer de destino, quando `type` envolve leitura.
lenintTamanho de `bufp`.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1typeint
rsiargumento 2bufpchar *
rdxargumento 3lenint

Valor de retorno

Depende de `type`; em geral o número de bytes lidos/disponíveis em sucesso, -1 em erro, com errno definido.

Códigos de erro (errno)

EINVAL(22)
Argumento inválido.
ENOSYS(38)
Chamada de sistema não implementada nesta versão do kernel.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas