是否可以在 Linux 中创建动态 1 字节文件?

是否可以在 Linux 中创建动态 1 字节文件?

我想创建一个可以向其发送信息的文件,可以使用cat.如果数据没有立即读出,应该会丢失。所以文件大小最多可以是1字节。另外,捕获它时不应该有 EOF。

所以它应该是这样的/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
...
...
...

这可能吗?

答案1

/dev/random 不是一个普通文件,它是一个设备文件,由内核处理。您可以使用 创建其他设备文件mknod,但它们只能具有内核已知的现有设备文件的行为。

为了获得自定义行为,您必须编写自己的内核驱动程序。本指南向您展示如何编写一个非常基本的内核驱动程序,从那里您只需修改它以将写入其中的数据写入 1 个字节到循环缓冲区中,并在调用读取时打印出该缓冲区。

根据您实际想要实现的目标,可能有一种更简单的替代方法。

相关内容