Couchage pour millisecondes sur Windows, Linux, Solaris, HP-UX, IBM AIX, Vxworks, Wind River Linux?

Je dois écrire un programme C qui a besoin de dormir pour millisecondes, qui doit fonctionner sur différentes plates-formes telles que Windows, Linux, Solaris, HP-UX, IBM AIX, Vxworks, et Windriver Linux

  • Sur Windows, le Sleep appel système fonctionnera sur millisecondes seulement.
  • Sur Linux, sleep va travailler sur les secondes; usleep sera effectuer sur microsecondes et il est disponible sur Solaris.
  • Dans Vxworks, j'espère que je peux mettre en œuvre à l'aide de taskDelay et sysClkRateSet.

Comment puis-je réaliser cette milliseconde dormir sur HP-UX, IBM AIX et Wind River Linux?

usleep est POSIX devrait donc être en tout conforme à POSIX systèmes (comme HP/UX, AIX, etc.). Elle est marquée comme obsolète mais, en faveur de nanosleep qui d'autre part est marqué comme facultatif.
Notez que juste parce que vous pourriez trouver un moyen de express un n millisecondes de retard, il n'y a absolument aucune garantie que le système d'exploitation hôte sera donner vous exactement ce que vous demandez. L'OS:s vous de la liste ne sont généralement pas en temps réel, de sorte que ils vont très probablement pas garantie à des choses comme ça; quand ton délai se termine, une plus haute priorité de la tâche pourrait occuper le PROCESSEUR.
Ne lien suivant répondu à votre question? stackoverflow.com/questions/1157209/...
Double Possible de Est-il une alternative fonction de veille dans C à millisecondes?

OriginalL'auteur rashok | 2013-02-11