linux - 保持命名管道运行

标签 linux raspberry-pi pipe

我正在运行带有 Jessi Lite 的 Raspberry Pi。我创建了一个命名管道

mkfifo soundpipe 

然后我将我的音频捕获发送到管道:

arecord -f S16_LE -c1 -r48000 -t wav -D hw:1,0 > soundpipe

在一个新的终端中,我然后从这个管道消费声音

cat soundpipe | lame -m m -f -b 32 - "/home/pi/arecordings/test.mp3"

当我在运行“cat”命令的终端中按下 ctrl+c 时,arecord 进程(即写入管道)停止。为什么这个进程会停止,我如何让它一直运行?

谢谢。

最佳答案

编写器正在阻塞,因为命名管道没有读取器。

如果你需要它连续运行,你必须让一个程序连续读取管道,或者使用命名管道以外的东西。

关于linux - 保持命名管道运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35352795/

相关文章:

c - 缓冲区溢出还存在吗?

linux - fc 18 写入错误(文件系统已满?)

linux - FFmpeg Drawbox 错误?

c - 如何忽略子进程中的空管道?

linux - Crontab 不通过管道传送到文件 (LINUX)

c - 在没有先调用 munmap() 的情况下关闭文件描述符后,mmap() 指针的行为是什么?

python - 在使用 Raspberry Pi 寻找圆圈时,如何提高 FPS 并减少延迟?

python - 定义 NDEF 消息

python - 使用 Python 从 MySQLdb 中提取条目

java - Linux - "Too many open files"带管道,如何调试