~에 따르면POSIX.1-2008 표준, time()
일부 시스템에서는 시스템 호출로 구현됩니다.
어떤 시스템에서 이런 일이 발생합니까?
제가 우려하는 점은 time()
시스템 호출이 이루어질 때 2038년 1월 17일 이후의 모든 날짜가 큰 음수를 반환하여 일부 프로그램이 중단될 수 있다는 것입니다.
답변1
이는 POSIX 2008에서 요구하지 않으며 32비트 정수를 예약하는 시스템에서만 일반적인 관행도 아닙니다.time_t
OpenBSD는 2013년에 64비트로 전환됩니다.. 하지만! 개별 애플리케이션을 감사하여 32비트 시대를 사용하고 있는지 확인해야 하므로 단순히 운영 체제에서 더 큰 정수 유형을 사용하는 것이 필요하지만 충분하지는 않습니다.
Johan Myréen이 지적했듯이 time
시스템 호출이나 다른 것이 2038년 문제와 관련이 없습니다. 지원되는 시스템(및 해당 시스템에서 실행되는 애플리케이션)은 수정되지만 지원되지 않는 시스템(및 애플리케이션)은 수정되지 않습니다.