A向FIFO中写数据,B从FIFO中读数据。
A如何能知道B是否把数据读走了呢?
程序B只有可执行文件,无法做修改。
网上搜索说可以把FIONREAD传入ioctl来获取,但测试发现结果并不准确。
2 个解决方案
#1
TIOCOUTQ 代替 FIONREAD 试试
#2
FIONREAD是准确的,因为加了很多打印,而打印的传输是异步的而且速度比较慢。导致FIONREAD实际已经读完了,但是打印还没有传输完。
#1
TIOCOUTQ 代替 FIONREAD 试试
#2
FIONREAD是准确的,因为加了很多打印,而打印的传输是异步的而且速度比较慢。导致FIONREAD实际已经读完了,但是打印还没有传输完。