В Linux и большинстве ОС на основе UNIX простая печать символа BELL (Ctrl+G или '\a') вызовет звуковой сигнал.
Это реализуется через системный вызов ioctl()
, который находится в вашей оболочке (bash и т.д. Поддерживают это). Затем системный вызов проходит через ядро и, наконец, реализуется устройством pcspkr
, модулем ядра. Вы можете увидеть pcspkr
загруженный с помощью lsmod
и выгрузить его с помощью modprobe -r
или rmmod
.
Даже не думайте о /dev /tty, думая о звуковых сигналах, потому что даже безголовые программы, не связанные с TTY, могут издавать звуковой сигнал. Запустите strace -eioctl bash
и в командной строке bash запустите echo ^a
. Вы увидите, что создание звукового сигнала - это простой, но довольно специфический вызов ioctl()
(#include
<sys/ioctl.h>
и <linux/kd.h>
если вы пишете программу на C /C++ для этого.)
Рекомендации:
- http://tldp.org/LDP/lpg/node83.html
- http://www.linuxplayer.org/2010/04/beep-your-pc-speaker-in-linux