Como detectar e obter o tamanho real dos arquivos do dispositivo?

0

A função C fsize retorna 4096 para arquivos especiais / de dispositivo, mas existe uma função integrada para saber o tamanho real de um arquivo de dispositivo se ele for finito?
Também gostaria de saber se existe uma maneira de saber se um arquivo é um arquivo regular ou um arquivo de dispositivo?

Obrigado!

    
por Trevör Anne Denise 16.01.2018 / 15:44

1 resposta

0

Sua pergunta ainda é bastante inespecífica e ampla, e você receberá respostas inespecíficas para perguntas não específicas, que podem ser úteis ou não. Ainda aqui está uma tentativa de apontar você na direção certa.

I would also like to know if there is a way to know whether a file is a regular file or a device file ?

Claro. O mais comum é a saída de ls -l :

$ ls -l /dev
total 0
crw-rw----+ 1 root   audio      14,   4 Jan  5 00:44 audio
crw-------  1 root   root       10, 235 Jan  5 00:44 autofs
drwxr-xr-x  2 root   root           480 Jan 17 01:20 block
drwxr-xr-x  2 root   root           140 Jan 17 01:20 bsg
drwxr-xr-x  3 root   root            60 Jan  5 00:44 bus
lrwxrwxrwx  1 root   root             3 Jan 17 22:14 cdrom -> sr0
[...]

O primeiro caractere de cada linha de entrada revela o tipo de arquivo; você pode encontrar uma lista de tipos válidos no ls manual .

Como você está perguntando sobre as entradas em /dev , os tipos mais comuns lá, além de diretórios e links, são dispositivos de caractere e bloco dispositivos .

is there an integrated function to know the real size of a device file

Como já indiquei, o que você quer dizer com "tamanho real" é o tamanho do conteúdo disponível "em" um dispositivo, dos quais os arquivos especiais em /dev são apenas uma representação para tornar o acesso a eles disponível para o sistema.

A resposta para "como obter o tamanho" é "depende do conteúdo". Por exemplo. para uma partição de disco, que é um dispositivo de bloco, você geralmente monta e pode obter os tamanhos (total, ocupado, espaço livre) usando df . Por outro lado, nem todos os dispositivos de bloco podem ser montados.

E sem saber exatamente o que você quer alcançar, isso é tudo que você conseguirá até agora. Agora cabe a você pensar sobre isso, pesquisar na web (está tudo lá) e criar uma nova pergunta se não conseguir descobrir sozinho.

    
por 18.01.2018 / 00:36

Tags