c - 为什么Linux-arm中system(cmd)函数需要用&background参数设置命令字符串

标签 c linux

我将在 Linux-arm 嵌入式设备上运行常规程序。

我尝试使用system(cmd)函数在我的程序中运行linux shell cmd

cmd 是音频播放命令"aplay -N sound.wav"

如果cmd如上,我的linux设备将不会发出声音,并且程序的进程将处于T状态(跟踪或停止) )。

如果 cmd 设置为“aplay -N sound.wav &”,一切都会正常工作。

我的问题是造成这种情况的原因,为什么 "&" 背景参数在这种情况下很重要。

谢谢。

最佳答案

如果 aplay 允许 STDIN 充当 Controller ,则在前台运行它可能无法提供它期望的控制输入。后台可能会分离 STDIN 并使播放恢复到默认的“播放一次直到完成”模式。你们有 aplay 的手册页吗?

关于c - 为什么Linux-arm中system(cmd)函数需要用&background参数设置命令字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18646767/

相关文章:

C 中的命令行计算器。有什么问题?

c++ - dylib 中缺少符号

交叉编译宏名称

linux - 如何将日志文件重定向(管道)到控制台?

c - 汇编成 C 代码

c - 传递 'atoi' 的参数 1 使整数指针无需强制转换......任何人都可以帮助我

linux - 页缓存与 L1 缓存?

ruby - "cannot find -lucontext"在新推送的 docker 镜像 ruby​​ :2. 7.4-alpine3.13 上安装一些 ruby​​gems 时

c - 寻找一种检测我是否在虚拟机 (Linux) 中运行的好方法

linux - 什么 linux shell 命令返回字符串的一部分?