Profil de 黎明黎敏香草PhotosBlogListes Outils Aide

Blog


20/08/2009

跨平台(WIndows, Linux, VxWorks) getTickCount实现

在c/c++代码中,有时需要实现计时功能,比如某个时刻开始计时,然后到另一时刻时,计算距开始计时的时刻毫秒数。

通过在起始时刻和停止时刻分别调用下面的代码,返回的时间相减,便可获得这段时间的毫秒数,其跨Windows、Linux、VxWorks三个平台。

#ifdef WIN32
#define OS_WINDOWS WIN32
#include <windows.h>
#endif
#ifdef LINUX
#include <unistd.h>
#include <sys/time.h>
#include <netinet/in.h>
#endif
#ifdef VXWORKS
#include "vxworks.h"
#include <tickLib.h>
#include <sysLib.h>
#endif

#define ULONAG unsigned long

ULONGA getTickCount(void)
{
 ULONGA currentTime;
#ifdef WIN32
 currentTime = GetTickCount();
#endif

#ifdef LINUX
 struct timeval current;
 gettimeofday(&current, NULL);
 currentTime = current.tv_sec * 1000 + current.tv_usec/1000;
#endif

#ifdef OS_VXWORKS
 ULONGA timeSecond = tickGet() / sysClkRateGet();
 ULONGA timeMilsec = tickGet() % sysClkRateGet() * 1000 / sysClkRateGet();
 currentTime = timeSecond * 1000 + timeMilsec;
#endif

 return currentTime;
}

关键字:Windows Linux VxWorks GetTickCount 时间 c c++ 跨平台

KEY WORDS: Windows Linux VxWorks GetTickCount Time c C++ cross platform independent

Commentaires (2)

Veuillez patienter...
Le commentaire entré est trop long. Raccourcissez-le.
Vous n'avez rien entré. Réessayez.
Il est actuellement impossible d'ajouter votre commentaire. Réessayez plus tard.
Pour ajouter un commentaire, tu dois avoir l'autorisation de tes parents. Demander l'autorisation
Tes parents ont désactivé les commentaires.
Il est actuellement impossible de supprimer votre commentaire. Réessayez plus tard.
Vous avez dépassé le nombre maximal de commentaires qu'il est possible d'envoyer le même jour. Réessayez dans 24 heures.
Votre compte a pu laisser les commentaires désactivés parce que nos systèmes indiquent que vous risquez d'arroser d'autres utilisateurs de messages. Si vous pensez que votre compte a été désactivé par erreur, contactez l'assistance en ligne de Windows Live.
Effectuez la vérification de sécurité ci-dessous pour finaliser l'envoi de votre commentaire.
Les caractères entrés pour la vérification de sécurité doivent correspondre à ceux de l'image ou du fichier audio.

Pour ajouter un commentaire, connectez-vous avec votre identifiant Windows Live ID (si vous utilisez Messenger ou Xbox LIVE, vous avez un identifiant Windows Live ID). Connectez-vous


Vous n'avez pas d'identifiant Windows Live ID ? Inscrivez-vous

黎明 郝a écrit :
承蒙达人夸奖。。。呵呵
26 Août
xun suna écrit :
越来越专业了啊!
24 Août

Rétroliens

L'URL de rétrolien de ce billet est :
http://h-lm.spaces.live.com/blog/cns!C523F565A10E3B66!876.trak
Blogs Web qui font référence à ce billet
  • Aucune