수면이 허용하는 최대 수는 얼마입니까? [폐쇄]

수면이 허용하는 최대 수는 얼마입니까? [폐쇄]

잠시 기다린 후 일부 작업을 실행하고 싶습니다.

저 할 수 있어요:

sleep 1000;foo-1;foo-2

내가 기대하는 것은 몇 시간을 기다리는 것인데, sleep이는 최선의 해결책이 아닌 것 같습니다.

크론 작업을 설정하고 싶지 않습니다.

답변1

POSIX 규정:

정수 피연산자를 사용하고 허용된 값의 하위 범위를 지정하지 않는 다른 모든 유틸리티와 마찬가지로 sleep[...]는 최대 2147483647초의 시간 요청을 처리하는 데 필요합니다.

(원천)

2147483647초는 68년 전입니다. 구현을 통해 더 많은 양을 지원할 수 있습니다. 운영 체제가 매우 모호하지 않는 한 운영 체제는 sleep최대 약 68년 동안 안정적으로 최대 절전 모드로 유지될 것으로 예상할 수 있습니다.

운영 체제가 정말 모호하다면 어떻게 될까요? 고려하다상상의구현은 sleep16비트 부호 있는 정수로 제한됩니다. 최대값은 32767초로 9시간을 초과합니다. 그래도 sleep"몇 시간" 정도는 기다릴 수 있습니다.

내가 상상할 수 있는 것은 더 제한적이다 sleep. 8비트 값은 최대 255초(부호 없는 경우) 또는 127(부호 있는 경우)초를 허용합니다. 실제로는 몇 분 밖에 걸리지 않습니다. 이렇게 제한적인 조치를 취한 사람이 있는지 의심스럽습니다 sleep.

결론: 몇 시간을 기다리는 것이 sleep좋은 해결책입니다. 기술적으로는 효과가 있을 것입니다.

관련 정보