FIFO pipe only reads after write end has closed

早过忘川 提交于 2019-12-01 10:57:17

Your problem comes from the buffer. FIFO use block buffer by default. So the c program won't read anything until the write buffer of the fifo in python was full. And there's two way to change this behaviour:

  • specify the buffer mode:

there's three buffer mode:

  1. block buffer(default)
  2. line buffer
  3. no buffer at all

What meet your needs here is the line buffer, so use fifo = open("emg", "w", 1); instead of fifo = open("emg", "w"); will fix. number 1 here instead line buffer. python doc

  • another method is force flush the buffer, use fifo.flush after the write operation.

yes ..forcing a flush will resolve the issue.

As immibis says in the comments, fifo.flush() solved my issue!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!