[LatinaLUG] C++: funzione beep

Davide "DeMoN3" Angelini demon3rock@gmail.com
Sab 29 Set 2007 15:08:10 CEST


Il 29/09/07, Carlo Felici<7h3wyrda@gmail.com> ha scritto:
> mmm...allora la funzione funziona solo su windows...
>
> e per linux? dopo faccio una ricerca, ciao ragazzi.
>
> Il giorno sab, 29/09/2007 alle 15.01 +0200, Davide "DeMoN3" Angelini ha
> scritto:
> > Il 29/09/07, Carlo Felici<7h3wyrda@gmail.com> ha scritto:
> > > http://www.pierotofy.it/pages/dispense/CPlusPlus/Suoni_in_CPlusPlus/
> > >
> > > bah, l'unica cosa chiara che ho trovato...
> > >
> > > Il giorno sab, 29/09/2007 alle 14.43 +0200, Davide "DeMoN3" Angelini ha
> > > scritto:
> > > > L'unico riferimento che ho trovato è stato questo
> > > > http://www.frank-buss.de/beep/index.html
> > > >
> > > > Dove dice che su windows la funzione è Beep con la B maiuscola
> >
> > Ho appena compilato il tuo codice e mi funziona...(sotto windows xp sp2)

For Linux

Note: you need write access to /dev/tty10 or you have to run this
program as root. This could be a security hole. Search on Google, if
you want a Linux-module with user access for the beep-function.

#include <stdlib.h>
#include <fcntl.h>
#include <linux/kd.h>

int main(int argc, char *argv[])
{
    int fd = open("/dev/tty10", O_RDONLY);
    if (fd == -1 || argc != 3) return -1;
    return ioctl(fd, KDMKTONE, (atoi(argv[2])<<16)+(1193180/atoi(argv[1])));
}

Copy this to a file beep.c and compile it like this:

cc beep.c -o beep
strip beep


Maggiori informazioni sulla lista latina