Стандарт c89 - это то место, где стоит поискать; его обоснование было опубликовано отдельно (и не является частью стандарта). stdlib.h
был создан комитетом, работающим над стандартом, а не отражением существующей практики. Обоснование X3J11 гласит:
Заголовок
был изобретен Комитетом для выполнения ряда функций, которые в противном случае были бы бездомными.
В старых программах есть ifdef для включения stdlib.h
, в отличие от других мест, таких как memory.h
для memcpy
, malloc
] и тому подобное.
Это не означает, что до публикации стандарта не было нет stdlib.h
. Например, у меня есть примечание в одном из моих заголовочных файлов , в котором говорится, что VMS 5.3 (выпущенная июнь 1989 г. ) имеет stdlib.h
:
#if defined(vms) /* VAX/VMS 5.3 */
#define HAVE_STDLIB_H 1
#define HAVE_STDARG_H 1
#undef HAVE_UNISTD_H
#define HAVE_OLD_TOKEN_SPLICE 1
#define HAVE_OLD_TOKEN_QUOTE 1
#endif
Скорее, компании, участвовавшие в разработке стандарта, включали эти функции по мере развития стандарта, так что когда он был опубликован, он отражал существующую практику.
В том же заголовке (и его истории) я вижу, что в SVr3 не было stdlib.h
(имеется в виду среда Apollo svr5.5
), но он появился «позже» (вероятно, с SVr4, который разрабатывался примерно в то же время, что и стандарт c89).
Что касается BSD, я вижу, что он появился в 4.3reno в 1990 году (слишком поздно, чтобы относиться к нему).Точно так же легко найти комментарии, в которых говорится, что SunOS 4 является pre-ANSI (хотя я помню, что компилятор ANSI был добавлен в качестве опции довольно поздно). Так что давайте не будем рассматривать BSD как влияющие на этот заголовок и оставим компании, которые участвовали в разработке стандарта.
В обосновании упоминаются торговые марки AT&T и Digital Equipment Corporation.
Чтобы решить эту проблему, мне нужно было извлечь весь основной репозиторий Debian, чтобы certbot установился правильно.
FROM ruby:2.4.1
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true
RUN echo 'alias ll="ls --color=auto -l"' >> ~/.bashrc
RUN echo "deb http://ftp.debian.org/debian jessie main" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get remove -y python
RUN apt-get update --fix-missing
RUN apt-get -y upgrade
# Let's Encrypt (SSL CERTIFICATES)
RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian/ jessie-backports main" >> /etc/apt/sources.list
RUN echo 'Acquire::Check-Valid-Until no;' >> /etc/apt/apt.conf.d/99no-check-valid-until
RUN apt-get update
RUN apt-get install -y certbot -t jessie-backports