> 백엔드 개발 > C++ > 외부 라이브러리 없이 Linux에서 밀리초 시간 정확도를 어떻게 얻을 수 있습니까?

외부 라이브러리 없이 Linux에서 밀리초 시간 정확도를 어떻게 얻을 수 있습니까?

Linda Hamilton
풀어 주다: 2024-11-19 07:05:02
원래의
599명이 탐색했습니다.

How Can I Get Millisecond Time Accuracy in Linux Without External Libraries?

Linux에서 밀리초 시간 획득: clock()의 대안

Linux에서 초 단위를 넘어서는 정밀도를 추구하다 한계에 부딪힙니다. 가장 가까운 초까지만 근사하는 clock()입니다. Qt와 같은 타사 라이브러리가 QTime 클래스를 사용하여 솔루션을 제공하는 동안 보다 근본적인 접근 방식을 추구하면서 우리는 표준 C 도구의 영역을 탐색합니다.

밀리초 정확도를 얻으려면 다음에서 gettimeofday() 함수를 사용하는 것이 좋습니다. 헤더. 이 함수는 초 및 마이크로초 구성 요소로 현재 시간을 캡처하는 timeval 구조를 반환합니다.

다음 코드 조각을 고려하세요.

#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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿