C在Linux中的sound()和nosound()函数?

有人可以告诉我如何在Linux中使用C的sound()和nosound()函数吗? 我可以通过包含dos.h头文件在Windows中使用它,但是我在Linux上,所以我不能在那里使用dos.h。

不幸的是,似乎没有简单的解决方案。 你可以定义一个类似的嘟嘟声功能

/* beep.c - for Linux and DOS/Windows */ #include <stdio.h> #include <stdlib.h> #ifdef __DJGPP__ #include <dos.h> #include <pc.h> #endif #define ESC 27 void beep (int frequency, int duration) { #ifdef __DJGPP__ sound (frequency); delay (duration); nosound (); #else /* Linux */ FILE *tty; if ( NULL == (tty = fopen ("/dev/console", "w")) ) { fprintf (stderr, "Cannot write to /dev/console!\n" ); exit (1); } fprintf(tty, "%c[10;%d]%c[11;%d]\a", ESC, frequency, ESC, duration); #endif } int main (int argc, char *argv[]) { int frequency, duration; if (argc != 3) { fprintf (stderr, "Usage: beep <frequency> <duration>\n" ); exit (1); } frequency = atoi (argv [1]); duration = atoi (argv [2]); beep (frequency, duration); return (0); } /* end of beep.c */ 

在linux中没有dos.h等价物。 你需要从linux中可用的东西来探索

在这里检查

如果你有一个基于Debian的发行版,你可以安装哔声包:

sudo apt-get install beep

现在你可以从Linux中的C / C ++代码中调用beep命令,如下所示:

#include stdlib.h> int main(void){ system(beep); }