Milisaniye C alternatif uyku bir işlevi var mı?
Windows derlenmiş bir kaynak kod var. Bu Red Hat Linux üzerinde çalıştırmak için dönüştürme duyuyorum.
Kaynak kodu <windows.h>
başlık dosyası dahil ve programcı Sleep()
işlevi milisaniye süre beklemek kullandı. Bu Linux üzerinde çalışmaz.
Ancak, sleep(seconds)
fonksiyonu kullanabilirim, ama o saniyede tam sayı kullanır. Saniye için milisaniye dönüştürmek istemiyorum. Gcc Linux üzerinde derleme ile kullanabileceğim alternatif bir bekleme işlevi var mı?
CEVAP
Evet eski POSIX standartlar usleep()
Bu Linux üzerinde kullanılabilir tanımlanmış:
int usleep(useconds_t usec);
AÇIKLAMA
Bu usleep() fonksiyonu askıya alır ... bu sürecin yürütme (en az) usec mikrosaniye. Uyku hafifçe uzatılmış olabilir sistem herhangi bir aktivite veya zaman çağrı işleme veya grup tarafından sistemin parçalı zamanlayıcılar.
usleep()
alırmikrosaniyegiriş çarpmak zorunda kalacak, böylece , sırayla 1000 milisaniye içinde uyu.
usleep()
beri onaylanmaz ve daha sonra POSIX kaldırıldı; yeni kod için, nanosleep()
tercih edilir:
#include <time.h> int nanosleep(const struct timespec *req, struct timespec *rem);
AÇIKLAMA
nanosleep()
en azından*req
belirtilen geçti ya kadar, ya da arama parçacığının yürütülmesini askıya alır bir işleyici çağırma tetikleyen bir sinyal teslim arama iş parçacığı veya İşlem sona erer.Yapı timespec nanosaniye hassasiyetle zaman aralıklarını belirtmek için kullanılır. Aşağıdaki gibi tanımlanır
struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ };
Nasıl alabilirim C# için 50 milisaniye...
Nasıl python programım için 50 milisan...
Milisaniye için uyku...
Bir işlevi onları yaratan daha büyük k...
(Ya da ihmal) kullanmak için zaman var...