Le bip le plus basique est toujours '\a' , si votre terminal le supporte :
fprintf(stdout, "\aBeep!\n" );
Veuillez regarder le Linux standard beep
code source.http://www.johnath.com/beep/beep.c
Il utilise KIOCSOUND ioctl pour "bip", mais vous n'avez pas besoin de privilèges de superutilisateur pour le faire jouer. Je l'ai configuré pour qu'il soit lisible et exécutable par les utilisateurs du groupe "bip".
Donc, mon utilisateur standard avec l'UID 1000 est dans le groupe avec le GID 501 (je l'ai appelé "bip"). À côté de cela, je devais chmod 4750 /usr/bin/beep
et maintenant je peux jouer des bips (dans la gamme 20-20000Hz) sans demander les privilèges de superutilisateur.
Je pense que la seule façon de le faire est soit d'utiliser suid pour donner à mon propre programme un accès root, soit d'utiliser beep
, qui a déjà suid. Je suppose que je vais juste ajouter une autre dépendance, alors, comme beep
n'est pas trop grand de toute façon.
Merci pour toutes les réponses, je suis sûr que d'autres bibliothèques sont parfaites pour des signaux plus complexes, mais j'en ai besoin d'une très simple !
Je pense que cette question peut être marquée comme résolue / fermée, alors.
Si quelqu'un trouve un moyen de créer un bip en utilisant la console sans privilèges de superutilisateur, je suis toujours intéressé par cette solution :)
Merci encore à tous.