The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как всё-таки заставить бибикать системный динамик?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как всё-таки заставить бибикать системный динамик?" 
Сообщение от Serega_S emailИскать по авторуВ закладки(??) on 17-Окт-05, 08:35  (MSK)
Нашёл вариант 1:
int fd=open("/dev/tty", O_RDONLY);
if(fd==-1)
{
printf("open: %s\n",strerror(errno));
}
int t=ioctl(fd, KDMKTONE, (long) (1193180/1000 + (100<<16)));
if(t==-1)
{
printf("ioctl: %s\n",strerror(errno));
}
В результате бипа нет и на консоль сыпется:
ioctl: Invalid argument

Вариант 2:
Взамен
int fd=open("/dev/tty", O_RDONLY);
делать:
int fd=open("/dev/console", O_RDONLY);
Работает, но только под рутом, т.к. /dev/console доступно только для рута и не только в слаке так. Как-то же другие проги бибикают, не смотря на то, что они под пользователем запущены... Вопрос - как? Не заставлять же менять права на /dev/console всех пользователей проги...

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как всё-таки заставить бибикать системный динамик?" 
Сообщение от noname Искать по авторуВ закладки(??) on 17-Окт-05, 09:16  (MSK)
printf("%s\a\n",strerror(errno));
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как всё-таки заставить бибикать системный динамик?" 
Сообщение от Serega_S emailИскать по авторуВ закладки(??) on 17-Окт-05, 18:13  (MSK)
>printf("%s\a\n",strerror(errno));

Спасибо, работает. Но иногда на консоль сообщения сыпятся с замедлением, как буд-то там есть буфер и сообщения "проталкиваются" на консоль. Из-за этого эффекта первый бибик затупляет и бибикает только после следуещего printf. Вот такая бага/фича. Вот. Как с этим можно бороться, или как всё-таки победить приведённый мной выше код?
Ну и маленький плюс "хитрого" взаимодействия с бибером - можно изменять длительность/частоту, чтобы отличать бибиканье моей проги от бибиканий других прог...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как всё-таки заставить бибикать системный динамик?" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 17-Окт-05, 18:46  (MSK)
>>printf("%s\a\n",strerror(errno));
>
>Спасибо, работает. Но иногда на консоль сообщения сыпятся с замедлением, как буд-то
>там есть буфер и сообщения "проталкиваются" на консоль. Из-за этого эффекта
>первый бибик затупляет и бибикает только после следуещего printf. Вот такая
>бага/фича. Вот. Как с этим можно бороться, или как всё-таки победить
>приведённый мной выше код?

fflush(stdout);

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как всё-таки заставить бибикать системный динамик?" 
Сообщение от Niam Искать по авторуВ закладки on 17-Окт-05, 21:57  (MSK)
попробуй посмотреть ncurses!!
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Как всё-таки заставить бибикать системный динамик?" 
Сообщение от Serega_S emailИскать по авторуВ закладки(??) on 18-Окт-05, 12:22  (MSK)
>попробуй посмотреть ncurses!!
Как вариант - да, но я пишу ядро, а к нему есть морды на qt и ncurses. И надо, чтобы и там и там работало, не ложить же и там и там по-дефолту либы ncurses... Всё же код разрастётся излишне в варианте с qt
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Как всё-таки заставить бибикать системный динамик?" 
Сообщение от jd Искать по авторуВ закладки(??) on 18-Окт-05, 04:56  (MSK)
> Ну и маленький плюс "хитрого" взаимодействия с бибером - можно изменять
>длительность/частоту, чтобы отличать бибиканье моей проги от бибиканий других прог...

man setterm(1) (смотреть в сторону -bfreq, -blength)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Как всё-таки заставить бибикать системный динамик?" 
Сообщение от Serega_S emailИскать по авторуВ закладки(??) on 18-Окт-05, 12:26  (MSK)
>> Ну и маленький плюс "хитрого" взаимодействия с бибером - можно изменять
>>длительность/частоту, чтобы отличать бибиканье моей проги от бибиканий других прог...
>
>man setterm(1) (смотреть в сторону -bfreq, -blength)

Посмотрел, но хорошо бы програмно... Чтобы можно было какуюсь мелодию, точнее пиликанье неповторимое сварганить :-)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Как всё-таки заставить бибикать системный динамик?" 
Сообщение от jd Искать по авторуВ закладки(??) on 18-Окт-05, 13:37  (MSK)
>>> Ну и маленький плюс "хитрого" взаимодействия с бибером - можно изменять
>>>длительность/частоту, чтобы отличать бибиканье моей проги от бибиканий других прог...
>>
>>man setterm(1) (смотреть в сторону -bfreq, -blength)
>
>Посмотрел, но хорошо бы програмно... Чтобы можно было какуюсь мелодию, точнее пиликанье
>неповторимое сварганить :-)

Можно посмотреть исходники setterm...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Как всё-таки заставить бибикать системный динамик?" 
Сообщение от Serega_S emailИскать по авторуВ закладки(??) on 18-Окт-05, 16:52  (MSK)
>Можно посмотреть исходники setterm...

Пасибо. Буду глядеть.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру