Следующая информация поступает из программы командной строки beep
, доступной в Debian. Исходный код доступен через репозитории, а также доступен здесь .
Существует звонок ioctl()
с запросом KIOCSOUND на консольное устройство, которое вы можете использовать для воспроизведения звуков через динамик ПК. Фрагмент:
ioctl(fd, KIOCSOUND, CLOCK_TICK_RATE/(int)frequency);
для воспроизведения звука с частотой frequency
и:
ioctl(fd, KIOCSOUND, 0);
чтобы остановить гудок. fd
- дескриптор файла с разрешением на запись в /dev/console
, а frequency
- частота звука, приведенная в герцах. Константа CLOCK_TICK_RATE связана с микросхемой таймера, используемой для создания звукового сигнала, и в исходном коде beep
имеет значение 1193180 (герц). Хотя это может отличаться для вашей системы, но, если я не ошибаюсь, я помню ту же самую константу на старых программах DOS, которые использовали динамик ПК.