printf("\a")无法发声

sh/bash/dash/ksh/zsh等Shell脚本
回复
Travelinglight
帖子: 7
注册时间: 2014-07-08 21:13
系统: ubuntu 14.04

printf("\a")无法发声

#1

帖子 Travelinglight » 2014-08-05 16:21

我用的是ubuntu14.04,想写一个简易闹钟,先试了一下警报:
#include <stdio.h>
int main()
{
printf("\a");
}
但是程序运行后什么反应也没有,在真是ubuntu系统和虚拟机里都不出声,而在win下可以出声。
请问这是怎么回事?有没有办法可以解决这个问题?
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

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

#2

帖子 astolia » 2014-08-05 20:11

首先,你内核中需要有对应的驱动。
其次,你需要在tty下试。终端模拟器,至少是GNOME的终端模拟器默认是不会发声的,可以到它设置里面去改。
最后,记得看一下speaker的音量设置。可以在alsamixer里看
goodsea
帖子: 45
注册时间: 2014-04-24 16:14
系统: Ubuntu 14.04 LTS

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

#3

帖子 goodsea » 2014-08-07 13:31

好像在Linux中还要一个头文件
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

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

#4

帖子 cjxgm » 2014-08-07 23:57

goodsea 写了:好像在Linux中还要一个头文件
不用
printf 只要 stdio.h 就行了

至于发声,不是你的程序做的事,是终端做的,你要做的只是输出一个 “\a”,终端看到后会发声。
这就导致,不同终端可以对“\a”自由处理。(当然,自己程序也可以控制,那是另外一回事了)
我这里(gnome terminal in gnome 3)会发出系统提示音(而不是 beep)
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
回复