C - printf(" \ a")不会发出警报

时间:2017-10-13 11:06:11

标签: c bash alert

这是我在C中的代码。

#include <stdio.h>

int main(){
   printf("\a\n");
   printf("Startled by the sudden sound, Sally shouted, \"By the Great Pumpkin, what was that!?\"");
   return 0;
}

据说,&#34; \ a \ n&#34;应该发出警报吗?但是,出于某种原因,它没有这样做。我在Ubuntu Zesty上,bash命令beep发出哔哔声,但echo -e '\a'没有,所以我不确定问题到底是什么。

提出这个问题是因为其他这样的问题并没有最终产生对我来说足够详细/可理解的答案,或者完全不同的问题,其解决方案并不适用于我。

坦率地说,上面链接的帖子有一个太模糊的答案。 &#34;问题不在于C,而在于其他问题。&#34;根本没有帮助。

更新:只是因为其他人偶然发现了这个,这就是问题所在: 我有GNOME,因此WM就是Gnome-Shell。既然如此,我必须打开声音设置,转到警报,启用它们,并使音量更高。它从来没有引起我的注意,shell本身可能是问题所在。运行metacity --replace并突然听到警报后意识到这一点。

1 个答案:

答案 0 :(得分:4)

您确实写得正确:并且附加的\n是不延迟蜂鸣声输出的惯用方法。

但是现代操作系统允许用户配置他们的环境,因此这种哔哔声是可以抑制的。这可能就是这里发生的事情:看一下你的问题,你的shell似乎已经禁止在标准输出上发出哔哔声。