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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


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