Tak. time
ma udokumentowane może nie sprawy:
funkcji czasu() może wystąpić:
[EOVERFLOW] Liczba sekund od Epoki nie mieści się w obiekcie typu time_t.
Źródło: http://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html
Spodziewajcie się to zdarzyć w praktyce w ciągu około 22 lat, nie wcześniej, a nie na systemach 64-bitowych i 32-bitowych te, które wykorzystują 64-bitowy time_t
.
Również obecność jakiejkolwiek omieszkam lub może nie przypadków pozwala również na błędy implementacji zdefiniowane, choć ich istnienie byłoby poważnym jakość-of-realizacji wada.
EFAULT
nie jest problemem/nie istnieje, ponieważ dzieje się tylko wtedy, gdy program ma niezdefiniowane zachowanie.
Mimo wszystko, w realnym świecie, time
właściwie nie zawodzi.
@ user3159253 Może zwrócić EFAULT w przypadku 'time ((time_t *) junk)', dla pewnej wartości śmieci. Chociaż w momencie, w którym można wrócić do EFAULT, już uważam, że zachowanie programów zostało utracone. – user2864740
Za * niektóre * śmieci. Pytanie wydaje się dyskusyjne, ale ... dajcie radę prawnikom. – user2864740
@ user3159253 Nie ma nic wspólnego z byciem dobrze znanym (chociaż to czyniło go bardzo praktycznym wyborem spośród innych implikacji); mogła to być dowolna wartość (**), gdyby została skodyfikowana w umowie o funkcję. – user2864740