UNIX v7にはstdlibはありませんか?

UNIX v7にはstdlibはありませんか?

閲覧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.hmemcpymalloc

標準が発表される前はそうではありません。以前はいいえ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の商標を指します。

おすすめ記事