gettimeofday 예제

함수 gettimeofday() 및 settimeofday()는 시간대뿐만 아니라 시간을 얻고 설정할 수 있습니다. TV 인수는 구조적 시간(에 명시된 대로) : int gettimeofday(구조시간 *tv, 구조체 시간대 *tz);; int settimeofday (구성 구조 체시간 *tv, 구성 구조 체 시간 대 *tz); gettimeofday()에 의해 반환되는 시간은 시스템 시간의 불연속 점프(예: 시스템 관리자가 시스템 시간을 수동으로 변경하는 경우)의 영향을 받습니다. 모노톤으로 증가하는 시계가 필요한 경우 clock_gettime(2)을 참조하십시오. gettimeofday() 및 settimeofday() 반환 0 성공, 또는 실패에 대 한 -1 (이 경우 errno적절 하 게 설정 됩니다). 라이브러리 함수는 프로그램 외부의 라이브러리에 있는 일반 함수입니다. 지금까지 제시한 대부분의 라이브러리 함수는 표준 C 라이브러리인 libc에 있습니다. 예를 들어 getopt_long 및 mkstemp는 C 라이브러리에 제공되는 함수입니다. gettimeofday() 함수는 에포크 이후의 초 및 마이크로초로 표현된 현재 시간을 얻고 tp로 가리키는 시간 벌 구조에 저장한다. 시스템 클럭의 해상도가 지정되지 않았습니다. 프로그램에서 시스템 호출 및 신호를 시청하려면 추적을 호출한 다음 프로그램 및 명령줄 인수를 호출하면 됩니다.

예를 들어 hostname 1 명령으로 호출되는 시스템 호출을 보려면 이 명령을 사용합니다. 프로그램이 시스템 호출을 하면 인수가 패키징되어 커널로 전달되며, 이 인수는 호출이 완료될 때까지 프로그램 실행을 대신합니다. 시스템 호출은 일반적인 함수 호출이 아니며 커널로 제어를 전송하려면 특별한 절차가 필요합니다. 그러나 GNU C 라이브러리(GNU/Linux 시스템과 함께 제공되는 표준 C 라이브러리의 구현)는 Linux 시스템 호출을 함수로 래핑하여 쉽게 호출할 수 있습니다. 열기 및 읽기와 같은 낮은 수준의 I/O 함수는 Linux의 시스템 호출의 예입니다. 필드 tz_dsttime에는 일광 절약 시간제 의 일부가 시행되고 있음을 나타내는 기호 상수(아래에 값이 지정함)가 포함되어 있습니다. (참고 : 그 값은 일년 내내 일정합니다 : DST가 적용 중임을 나타내지 않고 알고리즘을 선택합니다.) 정의된 일광 절약 시간 알고리즘은 다음과 같습니다. tz 인수는 구조형 표준 시간대입니다. 끝으로 실제로 프로그램의 작업을 수행하는 데 도움이 시스템 호출이 있습니다. uname 시스템 호출은 커널에서 시스템의 호스트 이름을 가져오는 데 사용되며, strace hostname의 출력에서 첫 번째 줄은 호스트 이름 프로그램을 호출하는 execve 시스템 호출을 표시합니다: 2 strace의 모든 출력이해는 자세한 친숙함이 필요합니다.

리눅스 커널 및 실행 환경의 디자인. 이 중 대부분은 응용 프로그램 프로그래머에게 제한된 관심사입니다. 그러나 까다로운 문제를 디버깅하거나 다른 프로그램의 작동 방식을 이해하는 데 일부 이해가 유용합니다. 라이브러리 함수에 대한 호출은 다른 함수 호출과 같습니다. 인수는 프로세서 레지스터 또는 스택에 배치되며 실행은 일반적으로 로드된 공유 라이브러리에 있는 함수 코드의 시작 부분으로 전송됩니다. 전통적으로, 구조형 시간벌의 필드는 긴했다. 리눅스는 현재 약 200 개의 다른 시스템 호출을 제공합니다. 리눅스 커널의 버전에 대한 시스템 호출 목록은 /usr/include/asm/unistd.h에 있습니다.

Komentáře nejsou povoleny.