Ir para conteúdo
Fórum Script Brasil
  • 0

Threads


Rodolfo Rodrigo Menardi

Pergunta

Amigos estou fazendo um código para contrar um dispositivo via porta paralela no linux, porem estou com o seguinte problema, vou colocar um exemplo do meu código aqui em baixo e já explico o que quero.

#include <conio.h>
#include <iostream.h>
#include <unistd.h>
#include <sys/io.h>

main()
{
    int Menu;
    ioperm(0x378, 3, 1);
    cout << "1 - Efeito 1\n";
    cout << "2 - Efeito 2\n";
    cout << "0 - Encerrar Programa\n";
    cout << "Digite a Opcao: ";
    cin >> Menu;
    while(Menu != 0)
    {
        if(Menu == 1)
    {
        for(;;)
        {
        outb(0x09, 0x378);
        sleep(1);
        outb(0x06, 0x378);
        sleep(1);
        }
    }
    if(Menu == 2)
    {
        for(;;)
        {
        outb(0x01, 0x378);
        sleep(1);
        outb(0x03, 0x378);
        sleep(1);
        outb(0x07, 0x378);
        sleep(1);
        outb(0x0f, 0x378);
        sleep(1);
        outb(0x07, 0x378);
        sleep(1);
        outb(0x03, 0x378);
        sleep(1);
        }
    }
    cout << "1 - Efeito 1\n";
    cout << "2 - Efeito 2\n";
    cout << "0 - Encerrar Programa\n";
    cout << "Digite uma Opcao: ";
    cin >> Menu;
    }
    system("pause");
}

como viram, quando o usuario escolhe uma opção no menu ele entra em um loop infinito, porem eu queria que o programa não parace nesse loop e sim que ele fizesse o loop e continuasse o programa até o usuario escolher outra opção e mudasse as instruções do dispositivo e assim sussetivamente.

eu vi que para isso presciso usar threads, e até vi a biblioteca pthread.h porem não entendi como utilizar ela, sou muito fraca em programação orientada e em c.

se der para me explicarem agradeço.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...