【问题标题】:Python: How can one process wait for a fifo to be created by another process?Python:一个进程如何等待另一个进程创建fifo?
【发布时间】:2016-03-18 20:07:56
【问题描述】:

我有两个单独的 python 脚本,它们都在随机时间点以写入模式创建一个fifo,并在读取模式下打开属于另一个的fifo。 (即P1以写模式打开fifo1,p2以写模式打开fifo2。然后p1以读模式打开fifo2,p2以读模式打开fifo1)。有没有办法,p1 必须等到 fifo2 被创建并准备好,以防 p2 延迟创建 fifo2 ?

【问题讨论】:

  • 有什么问题?
  • 我想要这种技术,以便 P1 等待(不同的执行)直到 P2 创建 fifo2。完成后,P1 以读取模式打开 fifo2 并继续正常执行。
  • 与其等待fifo被创建,不如阻止读取。也就是说,尽早创建两个 fifo(甚至在任一进程开始之前)并从 fifo 中读取。读取将阻塞,直到数据可用。

标签: python unix operating-system fifo


【解决方案1】:

我想要让 P1 等待的技术(不同的执行方式) 直到 P2 创建 fifo2。

import time
while True:
    try:
        fifo2 = open('fifo2', 'r')
        break
    except IOError:
        time.sleep(1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2016-09-09
    • 2016-07-24
    • 2020-09-21
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多