触发 FIFO/pty 上的零字节读取

触发 FIFO/pty 上的零字节读取

我想知道如何模拟 ^D 的 ICANON 行为:即在 FIFO 或 PTY 或套接字等的另一端的程序中触发立即读取,甚至是零字节读取。特别是,我有一个程序,其规范是它读取标准输入上的脚本,直到读取零字节,然后读取输入以提供脚本,我想自动测试此功能。

当然,仅仅写入 FIFO 并不会导致正确的事情发生,因为没有零字节读取。帮助?

谢谢!

答案1

据我所知,这种行为是终端设备所特有的,所以这就是你必须使用的。

使用从机端处于模式的伪终端,并向主机端ICANON写入Ctl-d( )。'\4'

答案2

关于什么:

echo -n '' > /path/to/the/fifo

echo -n不产生换行符并且''是一个空字符串。因此,这应该会导致没有任何内容(0 字节)写入 fifo。

您可以将其缩短echo为几乎没有:

> /path/to/the/fifo

(如果你小心不要将其误解为管道其他输出)

相关内容