gpt4 book ai didi

linux - 无法写入命名管道

转载 作者:IT王子 更新时间:2023-10-29 00:26:39 27 4
gpt4 key购买 nike

我正在尝试写入一个用mkfifo 制作的命名管道。但是,当我运行命令(例如)ls > myNamedPipe 时,我无法再将命令输入到 bash 中。我仍然可以写字符,仅此而已。

最佳答案

命名管道保持打开状态,直到您从其他地方读取它。这是为了允许不同进程之间的通信。

尝试:

mkfifo fifo
echo "foo" > fifo

然后打开另一个终端并输入:

cat fifo

如果您返回第一个终端,您会注意到您现在可以输入其他命令。

另请参阅相反的情况:

# terminal 1
cat fifo

# terminal 2
echo "foo" > fifo

# and now you can see "foo" on terminal 1

如果您希望终端在尝试向 fifo 写入内容时不要“挂起”,请将文件描述符附加到 fifo:

mkfifo fifo
exec 3<> fifo
echo "foo" > fifo
echo "bar" > fifo

关于linux - 无法写入命名管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com