【发布时间】:2011-03-11 18:24:13
【问题描述】:
有没有办法从(有限)缓冲区生成无限流(到文件描述符),即重复缓冲区,而不调用来自用户空间的调用(最初设置缓冲区除外)?我想我正在寻找一种方法来定义像 /dev/zero 这样的数据源,仅使用用户定义的有限缓冲区作为值源。
(目的是通过串行连接将 IO 刺激到外部设备,以防这听起来像是一个奇怪的请求。)
【问题讨论】:
-
“不调用来自用户空间的调用”是什么意思?
有没有办法从(有限)缓冲区生成无限流(到文件描述符),即重复缓冲区,而不调用来自用户空间的调用(最初设置缓冲区除外)?我想我正在寻找一种方法来定义像 /dev/zero 这样的数据源,仅使用用户定义的有限缓冲区作为值源。
(目的是通过串行连接将 IO 刺激到外部设备,以防这听起来像是一个奇怪的请求。)
【问题讨论】:
如果您安装了 Perl:
perl -e 'print "HELLO" while(1);' > /dev/ttyUSB0
perl -e 'print chr(0x48) while(1);' > /dev/ttyUSB0
perl -e 'print chr(0x48).chr(0x45).chr(0x4c).chr(0x4c).chr(0x4f) while(1);' > /dev/ttyUSB0
/dev/ttyUSB0 是您的串行设备,“HELLO”是一个 ascii 字符串,chr(0xXX) 是要输出的特定字节。
【讨论】: