Ubuntu 15.10上的C应用程序发出嘟嘟声?

Ubuntu 15.10上的C应用程序发出嘟嘟声?,c,ubuntu,C,Ubuntu,我有一个C语言的现有应用程序需要发出嘟嘟声。我尝试使用printf(“\a”)和printf(“\7”),但没有产生声音。目前,我正在使用以下代码段: #include <iostream> #include <sys/ioctl.h> #include <fcntl.h> #include <linux/kd.h> int freq = 2000; int ms = 1000; int fd = open("/dev/console",

我有一个C语言的现有应用程序需要发出嘟嘟声。我尝试使用
printf(“\a”)
printf(“\7”)
,但没有产生声音。目前,我正在使用以下代码段:

#include <iostream> 
#include <sys/ioctl.h> 
#include <fcntl.h> 
#include <linux/kd.h>

int freq = 2000;
int ms = 1000;
int fd = open("/dev/console", O_WRONLY);
ioctl(fd, KIOCSOUND, (int)(1193180/freq));
usleep(1000*ms);
ioctl(fd, KIOCSOUND, 0);
close(fd);
#包括
#包括
#包括
#包括
intfreq=2000;
int-ms=1000;
int fd=open(“/dev/console”,仅限O_wr);
ioctl(fd,基奥桑德(国际)(1193180/频率));
usleep(1000*ms);
ioctl(fd,KIOCSOUND,0);
关闭(fd);
基于和其他几个论坛答案。但它仍然不发出声音

我还(按照)执行了以下步骤来解决问题,但没有成功:

运行gconf编辑器,如果桌面| gnome |外围设备|键盘| 铃声模式设置存在,然后将其从关闭更改为打开

运行dconf编辑器,如果org | gnome | settings守护进程| 外围设备|键盘|铃声模式设置存在,然后更改它 从头到尾

添加pactl上载示例 /将usr/share/sounds/gnome/default/alerts/glass.ogg bell.ogg添加到文件中 ~/.xprofile(您需要glass.ogg的gnome控制中心数据)

将[“$DISPLAY”]&&xset b 100添加到文件~/.bashrc中

此外:

在/etc/pulse/default.pa中取消注释以下内容:

加载示例惰性x11 bell/usr/share/sounds/ubuntu/stereo/bell.ogg

加载模块模块-x11-钟形取样=钟形开窗系统

我在alsamixer解决方案中看到了一个单独的线程,但我似乎看不到“PC蜂鸣”选项


还有什么能让我的C程序发出嘟嘟声的呢?

您真的需要在代码中添加错误检查。
/dev/console
打开
是否成功?您运行的程序是否具有写入
/dev/console
的权限?声音在机器上工作吗?需要确认的一件事是,echo-e“\a”实际上会在您的平台上发出嘟嘟声。您可能有其他一些系统问题影响您的结果。。。就像BIOS关闭了嘟嘟声,或者类似的东西。
echo-e“\a”
在我的机器上工作我根据beep.c检查了
fd=open(“/dev/console”,O_WRONLY))=-1
,它得到了无法打开/dev/console的错误。这也能防止<代码> PrtTf(“a”)< /C>工作吗?头文件:<代码> IoSturis/Coo>是C++头文件,不是C头文件!请更正为
stdio.h
,或者将标记从“c”更改为“c++”。您确实需要在代码中添加错误检查。
/dev/console
打开
是否成功?您运行的程序是否具有写入
/dev/console
的权限?声音在机器上工作吗?需要确认的一件事是,echo-e“\a”实际上会在您的平台上发出嘟嘟声。您可能有其他一些系统问题影响您的结果。。。就像BIOS关闭了嘟嘟声,或者类似的东西。
echo-e“\a”
在我的机器上工作我根据beep.c检查了
fd=open(“/dev/console”,O_WRONLY))=-1
,它得到了无法打开/dev/console的错误。这也能防止<代码> PrtTf(“a”)< /C>工作吗?头文件:<代码> IoSturis/Coo>是C++头文件,不是C头文件!请更正为
stdio.h
或将标记从“c”更改为“c++”