閲覧v7 UNIXソースコードv7 UNIXエミュレータでは、 "stdlib"ディレクトリがないことがわかりました<stdlib.h>
。ただし、v7 UNIXにはexit()
同じ機能がmalloc(), realloc(), free() .etc.
あります。また、Googleで検索して数時間以内にSEに切り替えたため、c89 (ANSI)
1つが必要です。 :)<stdlib.h>
K&R ANSI Edition.
だから私の質問は次のようになります<stdlib.h>
Cで初めて正式に使用されたときはいつですか?その歴史は何ですか(つまり、BSDで使用されていてBSDに含まれていますかc89
?)
ありがとうございます。
ベストアンサー1
c89の標準は見てみましょう。理由別に公開されました(標準の一部ではありません)。stdlib.h
標準を作成する委員会によって作成され、既存の慣行を反映していません。これX3J11原理説明する:
マストヘッドは、
<stdlib.h>
様々なホームレスイベントを主催するために議会で発明されました。
古いプログラムにはインクルードのifdefがありますが、forなどのようなstdlib.h
他の場所ではそうではありません。memory.h
memcpy
malloc
標準が発表される前はそうではありません。以前はいいえstdlib.h
たとえば、私のメモの1つにメモがあります。ヘッドファイルお知らせVMS 5.3(発売)1989年6月)持っている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
むしろ、標準開発に参加した企業は、標準が進むにつれてこれらの機能を統合するため、標準が開発されたとき以前は出版されると、既存の慣行を反映します。
stdlib.h
同じヘッダー(およびその記録)にSVr3は存在しませんでしたが(Apolloのsvr5.5
環境を参照)、「後で」(おそらくc89標準などの時期に開発されたSVr4と共に)出てきたことがわかります。
BSDポイントに関しては、1990年に4.3renoに現れるのが見られました(関連するには遅すぎます)。繰り返しますが、次の説明を見つけるのは簡単です。 SunOS 4はANSI以前のバージョンでした(ただし、次のようにANSIコンパイラを追加したことを覚えています)。オプションプロセスがやや遅かった)。したがって、このヘッダーに対するBSDの影響力を無視し、標準開発に参加する会社として維持しましょう。
その価値について理論的根拠は、AT&TおよびDigital Equipment Corporationの商標を指します。