Cat não acessará o arquivo no openSuse Tumbleweed (erro 'Argumento inválido')

0

Acabei de instalar a versão mais recente do openSuse Tumbleweed e estava passando pelo sistema de arquivos familiarizando-me com ele quando encontrei um arquivo em / dev / lightnvm chamado 'control'. Eu tentei executar cat no arquivo ( cat control ), mas quando fiz isso, recebi o seguinte erro:

cat: control: Invalid argument

Eu deveria ter todas as permissões apropriadas para acessar o arquivo. Alguma idéia de por que não consigo visualizar o conteúdo do arquivo 'control'?

    
por Peter David Carter 09.04.2016 / 22:12

1 resposta

2

O c na primeira coluna da saída ls significa que esse é um caractere arquivo de dispositivo . Não é um arquivo normal e não tem "conteúdo".

Quando você abre e lê um arquivo comum, o kernel executa um código padrão que busca os dados do arquivo do seu disco rígido (ou armazenamento similar). Mas quando você acessa um arquivo de dispositivo, o kernel executa o código (o "driver de dispositivo") que é específico para esse dispositivo. Aparentemente, os autores do driver de dispositivo lightnvm projetaram seu código de tal maneira que não faz sentido ler esse dispositivo em particular, e assim seu código diz que tentar fazer isso deve falhar com um erro.

(O mais provável é que o código que precisa usar este dispositivo seja gravado nesse arquivo - o nome control sugere que você deve escrever para ele para enviar comandos para o dispositivo. Também pode ser destinado a ser nem lido nem escrito, mas acessado usando a chamada do sistema ioctl() .

Geralmente não é uma boa ideia mexer com os "arquivos" em /dev , a menos que você realmente saiba o que está fazendo. Escrever em arquivos de dispositivos arbitrários pode ser muito perigoso; Por exemplo, echo hello >/dev/sda tornaria seu sistema não inicializável, e seria muito difícil recuperar seus arquivos. Até mesmo a leitura de arquivos de dispositivos pode ser perigosa em alguns casos ou, pelo menos, causar um comportamento inesperado.

    
por 10.04.2016 / 06:10