Atualmente estou estudando para o exame Comptia Linux+ e estou no capítulo da Biblioteca Compartilhada. Entre todos, diz que o arquivo /etc/ld.so.cache é um arquivo binário, mas no meu caso não é. É um arquivo regular, cujo conteúdo posso visualizar facilmente e justo o suficiente para conter os locais das bibliotecas.
ls -l /etc/ld.so.cache
-rw-r--r--. 1 root root 154135 Feb 11 11:17 /etc/ld.so.cache
Já vi em vários materiais que o arquivo de cache é binário e estou curioso por que essa incompatibilidade? O tipo de arquivo depende da distro? Estou usando o Fedora Workstation 27
Você está misturando as definições de um arquivo binário e um arquivo executável (binário).
O livro menciona corretamente que
/etc/ld.so.cache
é um arquivo binário (um arquivo de dados).Como você pode ver correndo
file /etc/ld.so.cache
De
man ld.so
:A partir de
man ldconfig
Além disso,
/etc/ld.so.cache
é regenerado ao executarldconfig
. Consulte Relação entre ldconfig e ld.so.cacheA verificação dupla é, de fato, uma lista de arquivos de biblioteca:
Ou ainda, usando
ldconfig -p
:É um arquivo binário porque contém estruturas de dados binários gravadas nele usando um programa chamado
ldconfig
. A estrutura (provavelmente um Hashtable) é usada para pesquisar e localizar com eficiência o caminho de um objeto compartilhado. A razão pela qual você vê os caminhos quando abre o arquivo no modo de texto é porque parte das estruturas contém strings ou uma tabela de strings (Nomes de caminho) e isso é tudo o que o editor de texto pode reconhecer comoASCII
strings de código (e, portanto, mostre na tela).