Emitir Beep na linguagem C

1. Emitir Beep na linguagem C

Marco Brainiac
mbrainiac

(usa Debian)

Enviado em 30/06/2015 - 19:18h

Olá pessoal,

Seguindo o início do Livro do Damas tentei emitir beeps pelo programa em C mas não os ouvi, compilei sem erros e ao executar nada dos beeps.

#include <stdio.h>
int main()
{
printf("Aqui vai um apito\a\a\a\a\a\n");
printf("Aqui vai um apito\7\7\7\7\7\n");

return 0;
}



brainiac@hotpc:~/C_programas$ gcc damas0107.c -o damas0107.x
brainiac@hotpc:~/C_programas$ ./damas0107.x
Aqui vai um apito
Aqui vai um apito



  


2. Re: Emitir Beep na linguagem C

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/06/2015 - 19:38h

Prá dar beep o módulo de som do beep precisa estar carregado e o volume não pode estar mudo.
Você regula o som do beep na interface de controle de volume.

Prá saber se o módulo está carregado execute o seguinte comando lsmod | grep -i spkr e se sair algo é sinal que sim.

Senão estiver carregado use o comando modprobe pcspkr e confira de novo se carregou.

Tem um comando chamado beep. Veja se você consegue instalá-lo e executá-lo. Com ele é certeza de verificar se está dando beep. Você roda ele e ele bipa. Instala-se com apt-get install beep.
--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


3. Re: Emitir Beep na linguagem C

Marco Brainiac
mbrainiac

(usa Debian)

Enviado em 30/06/2015 - 20:13h

Olá fiz os procedimentos abaixo mas ainda não tive êxito


root@hotpc:/home/brainiac/C_programas# apt-get install beep
Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
Os NOVOS pacotes a seguir serão instalados:
beep
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
.
.
.

root@hotpc:/home/brainiac/C_programas# ./damas0107.x
Aqui vai um apito
Aqui vai um apito
.
.
.

root@hotpc:/home/brainiac/C_programas# lsmod | grep -i spkr
pcspkr 12515 0
root@hotpc:/home/brainiac/C_programas# modprobe pcspkr
root@hotpc:/home/brainiac/C_programas# lsmod | grep -i spkr
pcspkr 12515 0
root@hotpc:/home/brainiac/C_programas# ./damas0107.x
Aqui vai um apito
Aqui vai um apito
root@hotpc:/home/brainiac/C_programas#




4. Re: Emitir Beep na linguagem C

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/06/2015 - 20:37h

Se com você digitando beep no terminal e o beep não toca, pode ser que o volume dele esteja mudo ou desativado.
Qual ambiente você usa? Tem algum controle de volume?

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


5. Re: Emitir Beep na linguagem C

Paulo
paulo1205

(usa Ubuntu)

Enviado em 30/06/2015 - 20:49h

Converter o caráter ASCII BEL (código 7) enviado ao terminal é uma função do terminal ou do emulador de terminal que você estive usando. Essa função pode, às vezes, ser desabilitada, e a forma de fazer, mesmo que esteja ligada, depende de como o driver do terminal ou emulador funcione.

Eu uso KDE, cujo emulador de terminal é o Konsole. Se não me engano, o default do Konsole no Kubuntu é não emitir resposta sonora nenhuma ao caráter BEL. A função de notificação tem de estar ligada, e configurada para emitir um som através do sistema de notificações do KDE, ou executar um comando externo que gere som.

Se fosse um Xterm, ele usaria o a notificação de sino (bell) do X11, que é mesmo só um sino, não um sistema de música. Eu _acho_ que o sino do X11 pode ser interceptado pelo gerente de janelas, e esse gerente pode transformar isso num evento que gere coisas mais elaboradas na interface de som. Nesse caso, vai depender da configuração do seu ambiente gráfico e ambiente de som.

O que acontece se você tentar emitir um bipe no console de texto, sem o X11?


6. Re: Emitir Beep na linguagem C

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/06/2015 - 21:13h

paulo1205 escreveu:

Converter o caráter ASCII BEL (código 7) enviado ao terminal é uma função do terminal ou do emulador de terminal que você estive usando. Essa função pode, às vezes, ser desabilitada, e a forma de fazer, mesmo que esteja ligada, depende de como o driver do terminal ou emulador funcione.

Eu uso KDE, cujo emulador de terminal é o Konsole. Se não me engano, o default do Konsole no Kubuntu é não emitir resposta sonora nenhuma ao caráter BEL. A função de notificação tem de estar ligada, e configurada para emitir um som através do sistema de notificações do KDE, ou executar um comando externo que gere som.

Se fosse um Xterm, ele usaria o a notificação de sino (bell) do X11, que é mesmo só um sino, não um sistema de música. Eu _acho_ que o sino do X11 pode ser interceptado pelo gerente de janelas, e esse gerente pode transformar isso num evento que gere coisas mais elaboradas na interface de som. Nesse caso, vai depender da configuração do seu ambiente gráfico e ambiente de som.

O que acontece se você tentar emitir um bipe no console de texto, sem o X11?


Aqui não dá beep, mas eu preciso desligar todo X11 ou se eu mudar para <Ctrl>+<Alt>+<F1> sem desligar já resolve?

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


7. Re: Emitir Beep na linguagem C

Marco Brainiac
mbrainiac

(usa Debian)

Enviado em 30/06/2015 - 21:28h

listeiro_037 escreveu:

Se com você digitando beep no terminal e o beep não toca, pode ser que o volume dele esteja mudo ou desativado.
Qual ambiente você usa? Tem algum controle de volume?

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Oi uso Debian com KDE






8. Re: Emitir Beep na linguagem C

Marco Brainiac
mbrainiac

(usa Debian)

Enviado em 30/06/2015 - 21:33h

paulo1205 escreveu:

Converter o caráter ASCII BEL (código 7) enviado ao terminal é uma função do terminal ou do emulador de terminal que você estive usando. Essa função pode, às vezes, ser desabilitada, e a forma de fazer, mesmo que esteja ligada, depende de como o driver do terminal ou emulador funcione.

Eu uso KDE, cujo emulador de terminal é o Konsole. Se não me engano, o default do Konsole no Kubuntu é não emitir resposta sonora nenhuma ao caráter BEL. A função de notificação tem de estar ligada, e configurada para emitir um som através do sistema de notificações do KDE, ou executar um comando externo que gere som.

Se fosse um Xterm, ele usaria o a notificação de sino (bell) do X11, que é mesmo só um sino, não um sistema de música. Eu _acho_ que o sino do X11 pode ser interceptado pelo gerente de janelas, e esse gerente pode transformar isso num evento que gere coisas mais elaboradas na interface de som. Nesse caso, vai depender da configuração do seu ambiente gráfico e ambiente de som.

O que acontece se você tentar emitir um bipe no console de texto, sem o X11?


Ativei o áudio interno digital e analógico e não foi






9. Re: Emitir Beep na linguagem C

Marco Brainiac
mbrainiac

(usa Debian)

Enviado em 30/06/2015 - 21:34h

listeiro_037 escreveu:

Se com você digitando beep no terminal e o beep não toca, pode ser que o volume dele esteja mudo ou desativado.
Qual ambiente você usa? Tem algum controle de volume?

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


o cmamndo beep no terminla toca, menos no programa com \a ou \7






10. Re: Emitir Beep na linguagem C

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/06/2015 - 21:38h

Estranho, até fui conferir se está certo: http://stackoverflow.com/questions/3845590/how-to-produce-beep-sound-using-a-escape-character
Só prá desencargo e só desta vez execute o seu programa compilado, o que tem as \a como superusuário prá ver se muda algo.

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


11. Re: Emitir Beep na linguagem C

Marco Brainiac
mbrainiac

(usa Debian)

Enviado em 30/06/2015 - 22:12h

listeiro_037 escreveu:

Estranho, até fui conferir se está certo: http://stackoverflow.com/questions/3845590/how-to-produce-beep-sound-using-a-escape-character
Só prá desencargo e só desta vez execute o seu programa compilado, o que tem as \a como superusuário prá ver se muda algo.

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



Oi tentei como root e não deu...
root@hotpc:/home/brainiac/C_programas# ./damas0107.x
Aqui vai um apito
Aqui vai um apito











Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts