Il segnale acustico più semplice è ancora '\a' , se il tuo terminale lo supporta:
fprintf(stdout, "\aBeep!\n" );
Si prega di guardare il Linux standard beep
codice sorgente.http://www.johnath.com/beep/beep.c
Usa KIOCSOUND ioctl per "beep", ma non hai bisogno dei privilegi di superutente per farlo funzionare. L'ho configurato per essere leggibile ed eseguibile dagli utenti del gruppo "beep".
Quindi il mio utente standard con UID 1000 è nel gruppo con GID 501 (l'ho chiamato "beep"). Accanto a questo ho dovuto chmod 4750 /usr/bin/beep
e ora sono in grado di riprodurre segnali acustici (nell'intervallo 20-20000Hz) senza chiedere i privilegi di superutente.
Penso che l'unico modo per farlo sia usare suid per dare al mio programma l'accesso root, o usare beep
, che ha già suid. Suppongo che aggiungerò solo un'altra dipendenza, quindi, come beep
non è comunque troppo grande.
Grazie per tutte le risposte, sono sicuro che altre librerie sono ottime per segnali più complessi, ma ne ho bisogno di una molto semplice!
Penso che questa domanda possa essere contrassegnata come risolta/chiusa, allora.
Se qualcuno trova un modo per creare un segnale acustico utilizzando la console senza privilegi di superutente, sono ancora interessato a questa soluzione :)
Grazie ancora a tutti.