Linux의 C에서 밀리초 단위의 정확한 타이밍
원래 clock()이 Windows에서는 밀리초 단위로 시간을 반환하지만 Linux에서는 몇 초만 반환하는 이유에 대해 질문 , 질문자는 Boost 또는 같은 타사 라이브러리에 의존하지 않고 밀리초 수준의 시간 정확도를 얻기 위한 솔루션을 찾고 있습니다. Qt.
gettimeofday()를 사용한 솔루션
해결책은 표준 C 라이브러리에 있는 gettimeofday() 함수를 활용하는 데 있습니다. 구현 방법은 다음과 같습니다.
필요한 헤더 포함:
#include <sys/time.h> #include <stdio.h> #include <unistd.h>
초와 마이크로초를 저장할 구조체 timeval을 정의합니다.
struct timeval start, end;
시작하기 time:
gettimeofday(&start, NULL);
usleep()을 사용하여 마이크로초 단위로 지연을 지정합니다(원하는 지연으로 교체):
usleep(2000);
Get 끝 시간:
gettimeofday(&end, NULL);
경과 시간 계산:
long mtime, seconds, useconds; seconds = end.tv_sec - start.tv_sec; useconds = end.tv_usec - start.tv_usec; mtime = ((seconds) * 1000 + useconds/1000.0) + 0.5;
경과 시간을 밀리초 단위로 인쇄:
printf("Elapsed time: %ld milliseconds\n", mtime);
이 코드는 코드 조각은 gettimeofday()를 활용하여 마이크로초 단위로 시간을 가져오고 밀리초 수준의 정밀도를 보장합니다. 이는 Linux의 C에서 정확한 시간 측정값을 얻기 위한 강력하고 표준적인 솔루션 역할을 합니다.
위 내용은 외부 라이브러리 없이 Linux의 C에서 밀리초 단위의 정확한 타이밍을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!