Jump to content
Psycho_Mind

Tempo em milisegundos

Recommended Posts

Psycho_Mind

Boas.

Qual a melhor forma para se obter o tempo do sistema em milisegundos ? Só consigo até segundos.

Obrigado.

Share this post


Link to post
Share on other sites
HappyHippyHippo

então depende da versão do C que estás a usar definir para compilar a tua aplicação, é por isso que deverias fazer algo do género :

unsigned int miliseconds(void)
{
if __STDC_VERSION__ >= 199901L
   struct timespec ms;
   clock_gettime(CLOCK_REALTIME, &ms);

   return ms.tv_sec * 1000 + ms.tv_nsec / 1000000
#else
   struct timeval ms;
   gettimeofday(&ms, NULL);

   return ms.tv_sec * 1000 + ms.tv_usec / 1000
#endif
}

Edited by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
pmg

if __STDC_VERSION__ >= 199901L
   struct timespec ms;
   clock_gettime(CLOCK_REALTIME, &ms);
#else
   struct timeval ms;
   gettimeofday(&ms, NULL);
#endif

O que é que a versão do C tem a ver com a (in)existencia das funcoes (e structs) clock_gettime() e gettimeofday()?

Nenhuma das funcoes está definida pelo padrao.

A funcao clock_gettime() está definida pelo POSIX.

A funcao gettimeofday() está definida em BSD.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
HappyHippyHippo

tens razão

é o hábito de pensar que no gcc para c99+linux já vem com a flag do POSIX ligada

é só alterar então para:

ifdef __USE_POSIX199309
   struct timespec ms;
   clock_gettime(CLOCK_REALTIME, &ms);

   return ms.tv_sec * 1000 + ms.tv_nsec / 1000000
#else
   struct timeval ms;
   gettimeofday(&ms, NULL);

   return ms.tv_sec * 1000 + ms.tv_usec / 1000
#endif

Edited by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
pmg

O problema é pensares que o gcc é um compilador "Standard".

Sem as opções correctas (-pedantic), o gcc não é um compilador de C Standard.

Hint: gcc -std=<o que quiseres> -pedantic ...

Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
Psycho_Mind

Entretanto consegui resolver. Obrigado pessoal.

Agora ver se arranjo é forma de implementar a ligação a um site que verifique se um determinado IP está na key blacklist ou não. Um script para isto em Python devia de se fazer melhor, mas em C deve de ser mais complicado.

Share this post


Link to post
Share on other sites
Psycho_Mind

Boas.

Sabem como integrar Python em C ? Consegui arranjar o código que preciso mas em Python, assim facilitaria ao integrar no codigo C que já tenho, mas de tudo o que encontrei nada surtiu o efeito desejado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.