É possível criar um arquivo dinâmico de 1 byte no Linux?

1

Eu quero criar um arquivo para o qual eu possa enviar informações, que podem ser lidas usando cat . Se os dados não forem lidos imediatamente, devem ser perdidos. Portanto, o tamanho do arquivo pode ser de no máximo 1 byte. Além disso, não deve haver um EOF ao ser exibido.

Portanto, deve ser algo como /dev/random :

$ ls -l /dev/random
crw-rw-rw- 1 root root 1, 8 aug 30 12:16 /dev/random

$cat /dev/random
�Zd<'у�Ɇ��[7"$�T'g/��F��?���n��a���-�'�
�ս�"'�F����z��
               ����]�7/ۆs���Ha�bO�EY'NJ���gɠ������R:�u�E��#_�����ۀ�]�;6�������ό2�����GE9$E^xeE�����J���;
                                    K~�����צ�d0�b��$I��8 a��0<4��$]m5"�o�V�V-�s�p�|�
     �lB�(�O�4�=B�%�q�Gv[����IS�S)"y���
�q�*�a���$�)����J�}��ȍ|���cj�sD ���+�D9��=>�
G�؋���P�hiA��l�$H'��;]JB��?a:gc�����/6�қ�S{��Z]�,�8a޹�K�v
                                                              ��86t\���!+�xح���ȕ��3J
�������G,t�5+�s\}�PY������%��t�:������/�^�F�F�$'��{a�n+ș9;�����] �$���ϒ�L(����qX~��DE�
                  v
                   g�z����YI���Ӈ2���xQra�ryNcd�rF��F���k���/�����6  �X��5�����*F�?��I��0(W��yS��Qa�j��/�m�í$ů���eC}WC�Ƚ�#)��
                                                         G�U��+;�V�}�To�����p��R���[=�rv@�a��J�gv���r�t�mW+b4e
                                  aIg;
�SI�����fXSPE��m$�]X���-�(��S<��V/���I���p��գ'�A�����v�UnT5���zwv��a��f��.�v�Ji�n<�|^C
...
...
...

Isso é possível?

    
por Exeleration-G 30.08.2016 / 16:22

1 resposta

1

/ dev / random não é um arquivo normal, é um arquivo de dispositivo e é tratado pelo kernel. Você pode criar outros arquivos de dispositivo com mknod , mas eles só podem ter o comportamento de arquivos de dispositivos existentes conhecidos pelo kernel.

Para obter um comportamento personalizado, você precisará escrever seu próprio driver de kernel. Este guia mostra como escrever um driver de kernel muito básico, a partir daí você só precisa modificá-lo para gravar dados gravados nele em um byte em um buffer circular, e imprimir este buffer quando uma leitura é chamado.

Dependendo do que você está realmente tentando alcançar, pode haver uma alternativa mais fácil para essa abordagem.

    
por 30.08.2016 / 21:11

Tags