El pitido más básico sigue siendo '\a', si su terminal lo admite:
fprintf(stdout, "\aBeep!\n" );
Mire el beep
estándar de Linux código fuente.http://www.johnath.com/beep/beep.c
Utiliza KIOCSOUND ioctl para emitir un "bip", pero no necesita privilegios de superusuario para reproducirlo. Lo configuré para que los usuarios del grupo "bip" puedan leerlo y ejecutarlo.
Así que mi usuario estándar con UID 1000 está en el grupo con GID 501 (lo llamé "bip"). Luego tuve que chmod 4750 /usr/bin/beep
y ahora puedo reproducir pitidos (en el rango de 20-20000 Hz) sin pedir privilegios de superusuario.
Creo que la única forma de hacer esto es usar suid para dar acceso a la raíz de mi propio programa, o usar beep
, que ya se ha suicidado. Supongo que agregaré una dependencia más, entonces, como beep
no es demasiado grande de todos modos.
Gracias por todas las respuestas, estoy seguro de que otras bibliotecas son excelentes para señales más complejas, ¡pero necesito una muy simple!
Creo que esta pregunta se puede marcar como resuelta/cerrada, entonces.
Si alguien encuentra una manera de crear un pitido usando la consola sin privilegios de superusuario, todavía estoy interesado en esta solución :)
Gracias a todos de nuevo.