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

[Iniciante] Erros ao usar Thread.


bessabr

Pergunta

Ol'a, estou tentando compilar este programa...

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <string.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/timerfd.h>


static int thread_1_count;
static int thread_2_count;
long start;

int out[1000];

static void *thread_1(void *arg)
{

    start=now();
    printf("Thread 1 period 10ms\n");

        for(int t=0; t <1000; t++){

            out[t] = now() - start;
            start = now();

            delay_ms(1);
            }
    
    return NULL;
}

static void *thread_2(void *arg)
{
    

    printf("Thread 2 period 20ms\n");
    
    while (1) {
        thread_2_count++;
            for(int i=0;i<1000;i++){
                printf("%d", "%d", i, out[i] );
            }
    }
    return NULL;
}

int main(int argc, char *argv[])
{
    pthread_t t_1;
    pthread_t t_2;

    printf("Periodic threads using timerfd\n");

    pthread_create(&t_1, NULL, thread_1, NULL);
    pthread_create(&t_2, NULL, thread_2, NULL);

    sleep(10);
    printf("thread1 %d iterations\n", thread_1_count);
    printf("thread2 %d iterations\n", thread_2_count);
    return 0;
}

Para fazer um teste no Ubuntu com o RTAI, por'em, ele est'a retornando este erro abaixo:

obs: 'e um trecho de codigo do 2net.com, fiz algumas altera'coes para comparar o tempos.

obs2: ele estava rodando normalmente, mesmo ap'os minhas altera'coes.

 

# cc -Wall -std=gnu99 -g -pthread -lrt -o timerfd timerfd.c -lrt
timerfd.c: In function ‘thread_1’:
timerfd.c:27:2: warning: implicit declaration of function ‘now’ [-Wimplicit-function-declaration]
  start=now();
  ^
timerfd.c:35:4: warning: implicit declaration of function ‘delay_ms’ [-Wimplicit-function-declaration]
    delay_ms(1);
    ^
timerfd.c: In function ‘thread_2’:
timerfd.c:50:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘char *’ [-Wformat=]
     printf("%d", "%d", i, out );
     ^
timerfd.c:50:5: warning: too many arguments for format [-Wformat-extra-args]
/tmp/cc7hgWzU.o: na função `thread_1':
/home/bessa/src/periodic-threads-master/timerfd.c:27: referência indefinida para `now'
/home/bessa/src/periodic-threads-master/timerfd.c:32: referência indefinida para `now'
/home/bessa/src/periodic-threads-master/timerfd.c:33: referência indefinida para `now'
/home/bessa/src/periodic-threads-master/timerfd.c:35: referência indefinida para `delay_ms'
collect2: error: ld returned 1 exit status
make: ** [timerfd] Erro 1

 

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...