この関数が提供されている理由はいくつかあります。再起動したいことがあります。確保したメモリを全て解放したいと考えるかもしれません。確保したメモリをアプリケーションの終了前に解放させたいと思う場合もあります。モジュールやモジュール内のオブジェクトはランダムな順番で削除されます。失敗してしまうことがあります。よってロードされていた場合、アンロードされません。(メモリリークを発見したら、どうか報告してください)。オブジェクト間の循環参照に捕捉されているメモリは解放されないことがあります。拡張モジュールが確保したメモリは解放されないことがあります。度以上呼び出すと正しく動作しないことがあります。度以上呼び出すと起こり得ます。後方互換性バージョンで、戻り値がありません。呼ばれるなら、この関数はその前に呼ばなければなりません。同様の意味で指定します。エンコーディングをコントロールできるようにします。エラーハンドラを使うことに注意してください。呼び出す前に、この関数を再度呼び出す必要があるでしょう。(例えば、インタプリタが初期化された後に、この関数が呼び出された場合)。呼び出すよりも前に呼び出さなければなりません。(ワイドキャラクタに変換されます)。ランタイムライブラリへの相対パスを取得するために使われます。引数はゼロ終端されたワイドキャラクタ文字列で、静的な記憶領域に入っていなければならず、その内容はプログラムの実行中に変更してはなりません。インタプリタ内のコードで、この記憶領域の内容を変更するものは一切ありません。設定されたプログラム名か、デフォルトのプログラム名を返します。関数が返す文字列ポインタは静的な記憶領域を返します。関数の呼び出し側はこの値を変更できません。セットされたプログラム名やいくつかの環境変数をもとに、数々の複雑な規則から導出されます。関数の呼び出し側はこの値を変更できません。引数に対応しています。これはUnixでのみ有用です。次に説明する関数も参照してください。セットされたプログラム名やいくつかの環境変数をもとに、数々の複雑な規則から導出されます。関数の呼び出し側はこの値を変更できません。引数に対応しています。Unixのみで有用です。サブツリーに収められます。一般的に、プラットフォームとは、ハードウェアとソフトウェアファミリの組み合わせを指します。動作させているならまた別のプラットフォームです。一般的には、同じオペレーティングシステムでも、メジャーリビジョンの違うものは異なるプラットフォームです。意味がなく、空文字列が設定されています。コンパイルされたかには依存します!)。共有するための設定方法を知っているでしょう。プログラム名から導出する際に副作用的に計算されます。関数の呼び出し側はこの値を変更できません。プログラム名と、いくつかの環境変数から計算されます。戻り値となる文字列は、プラットフォーム依存のパス区切り文字で分割された一連のディレクトリ名からなります。関数の呼び出し側はこの値を変更できません。インタプリタによってこの値で初期化され、その後にモジュールをロードする際の検索パスを変更するために修正することが可能で、たいていそうされます。*)¶デフォルトのモジュール検索パスを設定します。デフォルトの検索パスを計算しようとせず、代わりにこの関数が与えた検索パスを返します。アプリケーションに組み込まれていて、そのアプリケーションが全てのモジュールの場所を完全に把握しているときに便利です。パスはプラットフォーム依存の区切り文字で分割されている必要があります。空文字列をセットします。呼び出された後で、これらの値を変更する必要がある場合は、呼び出し側の責任で行います。パス引数は内部でコピーされます。したがって、呼び出し完了後に呼び出し元は引数を解放できます。インタプリタのバージョンを返します。最初の三文字は、ピリオドで区切られたメジャーバージョンとマイナーバージョンです。関数の呼び出し側はこの値を変更できません。現在のプラットフォームのプラットフォーム識別文字列を返します。名前を小文字に変換し、後ろにメジャーリビジョン番号を付けた構成になっています。