Desidero eseguire l'operazione sopra indicata in millisecondi come unità. Quale libreria e chiamata di funzione dovrei preferire?Operazione sleep in C++, piattaforma: os x 10.8
risposta
EDIT 2017: C++ 11 sleep_for
è il modo giusto per farlo. Si prega di vedere Xornad's answer, below.
C++ 03:
Da Mac OS X è basato su UNIX, si può quasi sempre e solo utilizzare le funzioni standard di Linux!
In questo caso è possibile utilizzare usleep
(che richiede un tempo in microsecondi) e moltiplicare i millisecondi per 1000 per ottenere i microsecondi.
#include <unistd.h>
int main() {
usleep(1000); // will sleep for 1 ms
usleep(1); // will sleep for 0.001 ms
usleep(1000000); // will sleep for 1 s
}
Per maggiori informazioni su questa funzione, controlla la pagina man di Linux:
Se si sta compilando su OS 10.7 o successivo, vedere la risposta di Xornand qui sotto! L'utilizzo di C++ 11 è molto più multipiattaforma rispetto all'utilizzo di codice specifico del sistema operativo! – NHDaly
per utilizzare la funzionalità C++ 11, devi accenderlo specificatamente in Xcode. Vedi il mio commento qui sotto sulla risposta di @ Xornand! – NHDaly
sleep (0.001f) dormirà per 0 secondi (sleep accetta un numero intero) – cap
Se si dispone di C++ 11 il supporto nel vostro compilatore, è possibile utilizzare il sleep_for
ed evitare di dover utilizzare un'API specifica per il sistema operativo. (http://en.cppreference.com/w/cpp/thread/sleep_for)
#include <thread>
#include <chrono>
int main()
{
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
return 0;
}
Il supporto per C++ 11 è disponibile per me in xcode 4.6.3 ma il thread di intestazione non è presente? –
Questa è una risposta molto migliore della mia! (Grazie Xornand, non avrei mai pensato di usarli!) – NHDaly
Ma hai ragione, per ottenere le intestazioni C++ 11 da compilare in Xcode, devi attivare il supporto della libreria C++ 11. Vai al tuo progetto nel navigatore, fai clic su Build Settings e poi cerca C++ Standard Library. Cambia l'impostazione del tuo progetto in 'libC++'. Ho modificato l'eccellente risposta di Xornand per riflettere queste informazioni, ma non sarà visibile fino a quando le mie modifiche non saranno accettate. :) – NHDaly
- 1. Impostazione SDL su OS X 10.8
- 2. valgrind non funziona su OS X 10.8
- 3. OS X 10.8 Gatekeeper e applet Java
- 4. CMAKE, Clang e C++ v11 su OS X 10.8
- 5. Mac OS X 10.8 e llvm/clang 3.3 via homebrew
- 6. SDL Video Init causa Eccezioni su Mac OS X 10.8
- 7. Come installare Ruby 1.8.7 su OS X 10.8 Mountain Lion
- 8. ID C++ per OS X
- 9. sleep-until in C#
- 10. Perché bundler non installerà la gemma json 1.7.4 su OS X 10.8?
- 11. Sviluppo Symbian C++ con Mac OS X
- 12. Come rimappare il tasto Caps Lock in Control in OS X 10.8?
- 13. Supporto Valgrind per Mac OS 10.8?
- 14. Su MAC OS X 10.8.x in che modo un'applicazione di AppStore può installare un'estensione del kernel?
- 15. HsOpenSSL segfaults su OS X
- 16. Installazione di librerie C++ su OS X
- 17. Indirizzo MAC dall'interfaccia su OS X (C)
- 18. gcc 4.8 su MAC OS X 10.8 genera "Simboli indefiniti per architettura x86_64:"
- 19. HomeBrew Mac OS X 10.8 gettando errori "No such file da caricare"
- 20. Xcode 4.4 + MacRuby = "macruby.h non trovato" (OS X 10.8 Mountain Lion)
- 21. PyCrypto su Google App Engine (1.7.0) con Python 2.7 su Mac OS X 10.8 causa ImportError
- 22. Perché Homebrew non sta creando file di collegamento Python su OS X 10.8?
- 23. Animazione CSS simile alla password "shake" di Mac OS X 10.8 non valida?
- 24. Posso usare il riconoscimento vocale/dettatura di OS X 10.8 senza una GUI?
- 25. Valgrind mostra perdite di memoria su un programma vuoto su Mac OS X 10.8
- 26. launchd: WatchPath non attiverà il semplice script "ciao mondo" (OS X 10.8)
- 27. Come disinstallare gli strumenti da riga di comando Xcode 4.4 (Mac OS X 10.8 Mountain Lion)?
- 28. OS X clang -pthread
- 29. mac os x access framebuffer dati grezzi
- 30. Come disabilitare le scorciatoie da tastiera in mac os x
nanosleep(), usleep() potrebbe valere la pena guardare. – Leonardo