这是我的 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;
}
据说“\a\n”应该发出警报,对吧?然而,出于某种原因,它并没有这样做。我使用的是 Ubuntu Zesty,bash 命令beep
确实发出蜂鸣声,但是echo -e '\a'
没有,所以我不确定问题到底是什么。
提出这个问题是因为其他此类问题最终没有产生对我来说足够详细/易于理解的答案,或者有一个完全不同的问题,其解决方案不适用于我。
坦率地说,上面链接的帖子的答案太模糊了。 “问题不在于C,而在于其他东西。”根本没有帮助。
UPDATE:以防万一其他人偶然发现这一点,问题就在这里:
我有 GNOME,因此 WM 是 Gnome-Shell。既然是这种情况,我必须打开声音设置,转到警报,启用它们,并将音量调高。我从来没有注意到外壳本身可能是问题所在。运行后意识到这一点metacity --replace
突然能够听到警报。
您确实写得正确:以及附加的\n
是不延迟蜂鸣输出的惯用方法。
但可惜的是,现代操作系统允许用户配置其环境,因此此类蜂鸣声是可以抑制的。这可能就是这里发生的事情:深入研究你的问题,你的 shell 似乎已禁用标准输出上的蜂鸣声。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)