Linux에서 밀리초 시간 획득: clock()의 대안
Linux에서 초 단위를 넘어서는 정밀도를 추구하다 한계에 부딪힙니다. 가장 가까운 초까지만 근사하는 clock()입니다. Qt와 같은 타사 라이브러리가 QTime 클래스를 사용하여 솔루션을 제공하는 동안 보다 근본적인 접근 방식을 추구하면서 우리는 표준 C 도구의 영역을 탐색합니다.
밀리초 정확도를 얻으려면 다음에서 gettimeofday() 함수를 사용하는 것이 좋습니다.
다음 코드 조각을 고려하세요.
#include <sys/time.h> #include <stdio.h> #include <unistd.h> int main() { struct timeval start, end; long mtime, seconds, useconds; gettimeofday(&start, NULL); usleep(2000); gettimeofday(&end, NULL); 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); return 0; }
이 예에서는 gettimeofday()를 활용하여 캡처합니다. usleep()을 사용하여 2밀리초 지연 전후의 현재 시간. 최종 시간에서 초기 시간을 빼면 경과 시간(초 및 마이크로초)을 얻을 수 있습니다. 이를 밀리초로 변환하기 위해 초에 1000을 곱하고 마이크로초에 1000.0을 곱하고 더해 0.5 조정으로 소수의 정확도를 보장합니다.
이 방법은 C에서 밀리초를 얻기 위한 정확하고 표준적인 솔루션을 제공합니다. Linux는 다양한 플랫폼에서 호환성을 유지하면서 외부 라이브러리에 대한 의존도를 제거합니다.
위 내용은 외부 라이브러리 없이 Linux에서 밀리초 시간 정확도를 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!