linux发出声音的命令,在Linux中发出哔哔声C

我想使用系统蜂鸣器(并且只有扬声器,如果蜂鸣器不可用/可访问),生成具有特定频率和长度(针对不同声音信号)的蜂鸣声。我知道可以通过使用ioctl来完成此操作,但这需要root访问权限,我不想这样做。在Linux中发出哔哔声C

我知道我可以使用“beep”命令,但那会是一个依赖项,如果可能的话,不应该使用它(根本不需要外部依赖项,只有基本的linux库和C)。

我现在拥有的是下面的代码(但是这需要超级用户权限来运行):

#include

#include

#include

int main(int argc, char *argv[])

{

int fd = open("/dev/console", O_RDONLY);

if (fd == -1 || argc != 3) return -1;

return ioctl(fd, KDMKTONE, (atoi(argv[2])<<16)+(1193180/atoi(argv[1])));

}

如果没有其他办法可以做到这一点,那么我会用嘟嘟声,但我真的想以避免依赖并将哔声直接集成到我的脚本中,但我相信这里有人会知道解决方案/解决方法。

我并不想要外部库,因为程序应尽可能轻量级。

2012-04-09

omnidan

+0

如果在桌面下运行,则可以使用ALSA。你也可以使用'play'命令......而一些桌面上有通知... –

2012-04-09 12:04:27

+0

@BasileStarynkevitch这不是过于复杂的事情吗?我只想要一个具有特定频率和长度的简单蜂鸣声。正如我已经告诉巴勃罗,我想尽可能保持轻量级,但是我想用嘟嘟声或suid来获得root权限是一种方法,那么呢? –

2012-04-09 12:09:18

+0

看看[这](http://stackoverflow.com/questions/412789/windows-beep-equivalent-for-linux)可以帮助你。 @paxdiablo声称它也可以从用户帐户运行。 –

2012-04-09 12:14:25

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值