매초마다 상태 정보를 출력해야하는 Mac 용 명령 줄 유틸리티를 작성했습니다. 분명히, 나는 1 초에 수천 번 폴링하고 싶지 않다. 내가 생각할 수있는 유일한 다른 방법은 현재 시간을 가져 와서 차이를 기다리는 것을 선택하는 것입니다. 더 좋은 방법이 있습니까?초당 한 번 코드를 실행할 수 있습니까?
2
A
답변
4
기다리는 시간은 적어도 그 시간만큼 기다리는 것이지 정확하지는 않습니다. OSX는 실시간 운영체제가 아닙니다. 그런 것을 보장 할 방법이 없다고 생각합니다.
견적을 원하는 경우 지금과 원하는 시간 사이의 차이를 자고 (아마도 로그 시간을 줄이는 데 조금 시간이 걸릴 수 있습니다) 작동합니다.
1
일반적으로 타이머를 사용하여 메소드를 예약하는 것이 트릭입니다. 그러나 기억해야 할 중요한 것은, 정밀도는 단순한 타이머로는 최선이 아니라는 것입니다.
1
는 여기에 내가 무엇을 : 그것은 충분해야한다에 "안구"정밀, 작동
#import <stdlib.h>
#import <stdio.h>
#import <time.h>
#import <sys/time.h>
#define TIME_LENGTH 9
int main()
{
struct timeval now;
struct timespec wait;
time_t seconds;
char str[TIME_LENGTH];
wait.tv_sec = 0;
for (;;) {
gettimeofday(&now, NULL);
wait.tv_nsec = (1000000 - now.tv_usec) * 1000;
nanosleep(&wait, NULL);
seconds = now.tv_sec+1;
strftime(str, TIME_LENGTH, "%T", localtime(&seconds));
puts(str);
}
}
. 내장 된 메뉴 바 시계와 동기화되어 업데이트 된 것처럼 보입니다. 분명히, time.h
, clock_nanosleep
에 시간이 있기까지 기다릴 수있는 함수가 있지만,이 사용법은 Mac에서는 지원되지 않습니다.
관련 문제
- 1. 어떻게 Heroku에서 코드를 초당 한 번 실행합니까?
- 2. 스레드를 여러 번 실행할 수 있습니까?
- 3. XSLT에서 한 번만 템플릿을 실행할 수 있습니까?
- 4. "with"블록에서 조건부로 코드를 실행할 수 있습니까?
- 5. J # 코드를 JVM에서 실행할 수 있습니까
- 6. vba 매크로에서 C# 코드를 실행할 수 있습니까?
- 7. iOS 앱이 백그라운드에서 반복적으로 (예 : 한 시간에 한 번) 함수를 실행할 수 있습니까?
- 8. 장치에서 코드를 실행할 수 없습니다.
- 9. 내가 한 번 이상 형태의 코드를 보았다
- 10. 동일한 Adobe AIR 앱을 두 번 이상 실행할 수 있습니까?
- 11. Eclipse를 통한 SVN - 체크 아웃 한 코드를 실행할 수 없습니다.
- 12. Perl 프로그램이 데이터베이스에 저장된 코드를 실행할 수 있습니까?
- 13. 다른 위치에서 sudo make install을 두 번 실행할 수 있습니까?
- 14. 스냅인을로드 할 때마다 초기화 코드를 어떻게 실행할 수 있습니까?
- 15. Spring Framework 컨트롤러 메소드가 호출되기 전에 코드를 실행할 수 있습니까?
- 16. 대화 상자를 수락하면 OnBeforeUnload가 코드를 실행할 수 있습니까?
- 17. 오브젝트가 .NET에서 범위를 벗어날 때 코드를 실행할 수 있습니까?
- 18. .NET에서 런타임시 새 코드를 컴파일하고 실행할 수 있습니까?
- 19. 한 번 준비한 후 준비된 계산서를 얼마나 오래 실행할 수 있습니까?
- 20. 코드를 작성하는 코드를 작성할 수 있습니까?
- 21. PHP 문자열을 실행할 수 있습니까?
- 22. WPF 브라우저 응용 프로그램이 안전하지 않은 코드를 실행할 수 있습니까?
- 23. 모든 스크립트 후에 Powershell 프로필 코드를 실행할 수 있습니까?
- 24. 예외를 throw하는 기본 UI 스레드 코드를 실행할 수 있습니까?
- 25. GA144에서 에뮬레이트 된 C 코드를 실행할 수 있습니까?
- 26. Ruby에서 각 줄 다음에 코드를 실행할 수 있습니까?
- 27. C#에서 변수 값이 변경되면 어떻게 코드를 실행할 수 있습니까?
- 28. 모든 테스트가 실행되기 때문에 코드를 실행할 수 있습니까?
- 29. 브라우저에서 클라이언트 측 코드를 어떻게 실행할 수 있습니까?
- 30. Visual Studio에서와 마찬가지로 XCode에서 메서드/코드를 실행할 수 있습니까?