我想知道如何模拟 ^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
(如果你小心不要将其误解为管道其他输出)