使用 open 时什么会导致无限循环?(C、UNIX)

CIs*_*ies 1 c unix infinite-loop mkfifo

我使用这个创建了一个 fifo:mkfifo("myfifo", 0666);
现在,我想使用它打开它,inf fd = open("./myfifo",O_WRONLY);但这会让我进入无限循环,为什么?

Mat*_*Mat 5

fifo(7)手册页:

必须先打开 FIFO 两端(读和写),然后才能传递数据。通常,打开 FIFO 会阻塞,直到另一端也打开为止。

你所拥有的并不是无限循环。您的进程只是被阻塞,等待某些东西打开管道的另一端。