分页: 1 / 1

printf("\a")无法发声

发表于 : 2014-08-05 16:21
Travelinglight
我用的是ubuntu14.04,想写一个简易闹钟,先试了一下警报:
#include <stdio.h>
int main()
{
printf("\a");
}
但是程序运行后什么反应也没有,在真是ubuntu系统和虚拟机里都不出声,而在win下可以出声。
请问这是怎么回事?有没有办法可以解决这个问题?

Re: printf("\a")无法发声

发表于 : 2014-08-05 20:11
astolia
首先,你内核中需要有对应的驱动。
其次,你需要在tty下试。终端模拟器,至少是GNOME的终端模拟器默认是不会发声的,可以到它设置里面去改。
最后,记得看一下speaker的音量设置。可以在alsamixer里看

Re: printf("\a")无法发声

发表于 : 2014-08-07 13:31
goodsea
好像在Linux中还要一个头文件

Re: printf("\a")无法发声

发表于 : 2014-08-07 23:57
cjxgm
goodsea 写了:好像在Linux中还要一个头文件
不用
printf 只要 stdio.h 就行了

至于发声,不是你的程序做的事,是终端做的,你要做的只是输出一个 “\a”,终端看到后会发声。
这就导致,不同终端可以对“\a”自由处理。(当然,自己程序也可以控制,那是另外一回事了)
我这里(gnome terminal in gnome 3)会发出系统提示音(而不是 beep)