Cの追加機能
DLIBランタイム環境には、追加されたC機能がいくつか含まれています:
C 境界チェックインターフェース
DLib_Threads.hiar_dlmalloc.hLowLevelIOInterface.hstdio.hstdlib.hstring.htime.h(time32.h、 time64.h)
C 境界チェックインターフェース
Cライブラリは、標準CのAnnex K (境界チェックインターフェース)をサポートします。ヘッダファイルerrno.h、stddef.h、stdint.h、stdio.h、stdlib.h、string.h、time.h (time32.h、time64.h)、および wchar.hにシンボル、型、および関数を追加します。
インターフェースを有効にするには、システムヘッダファイルに含まれる前に、プリプロセッサ拡張子 __STDC_WANT_LIB_EXT1__ を1に定義します。__STDC_WANT_LIB_EXT1__を参照してください。
追加の利点は、より安全なバージョンが存在する危険な関数 を使用した場合に、コンパイラが警告メッセージを出すようになります。例えば、より安全なstrcpy_sの代わりにstrcpyを使用すると、コンパイラは警告メッセージを発行します。
DLib_Threads.h
DLib_Threads.hヘッダーファイルは、ロックとスレッドローカルストレージ (TLS) 変数のサポートが含まれます。これはスレッドのサポートの実行に有効です。詳細については、ヘッダーファイルを参照してください。
iar_dlmalloc.h
iar_dlmalloc.hヘッダファイルには、アドバンストヒープハンドラ(dlmalloc)のサポートが含まれます。詳細については、ヒープについてを参照してください。
LowLevelIOInterface.h
ヘッダーファイルLowLevelInterface.hには、DLIBによって使用された低レベル I/O関数の宣言を含みます。DLIB低レベルI/Oインタフェースを参照してください。
stdio.h
以下の関数は、追加のI/O機能を提供します。
string.h
以下は、string.hに定義された追加の関数です。
time.h
time_tおよび関連の関数time、ctime、difftime、gmtime、localtime、mktimeを使用するために、2つのインタフェースがあります。
32ビットのインタフェースは、1900年から2035年までをサポートし、
time_tで32ビットの整数を使用します。型と関数の名前は__time32_t、__time32などです。この派生形は、主に旧バージョンとの互換性のためだけに使用できます。64ビットのインタフェースは-9999年から9999年をサポートし、
time_tで符号付きのlonglongを使用します。型と関数の名前は__time64_t、__time64などです。
インタフェースは、3つのヘッダファイルで定義されます。
time32.hは__time32_t、time_t、__time32、time、および関連の関数を定義します。time64.hは__time64_t、time_t、__time64、time、および関連の関数を定義します。time.hには、_DLIB_TIME_USES_64の定義に従って、time32.hまたはtime64.hが含まれます。_DLIB_TIME_USES_64が次の場合:1に定義されている場合、
time64.hを含みます。0に定義されている場合、
time32.hを含みます。undefined, it will include
time64.h.
どちらのインタフェースでも、time_tは1970年から始まります。
アプリケーションはどちらのインタフェースも使用でき、32ビットまたは64ビットの派生形を明示的に使用して両方を混在させることも可能です。
__time32, __time64も参照してください。
longが8バイトで64ビットtime.hが使用される場合、clock_tは8バイトで、それ以外の場合は、4バイトです。
デフォルトでは、時間ライブラリは、タイムゾーンおよび夏時間機能をサポートしません。これらの機能を有効にするには、リンカオプション--timezone_libを使用します。‑‑timezone_libを参照してください。
__getzoneからタイムゾーンと夏時間情報を読み込みまたは強制読み込みには、2 つの関数が使用できます。
int _ReloadDstRules (void)int _ForceReloadDstRules (void)
これらの両方の関数は、DSTルールが見つかった場合は0を返し、見つからなかった場合は-1を返します。