名前 | 機能説明 | 定義 | MT レベルのライブラリ | ファイル | 関連項目 | 診断 | マルチスレッドアプリケーションに関する注意事項 | リアルタイムアプリケーション | 注意事項 | ライブラリ一覧
本セクションでは、さまざまなライブラリにある関数のうち、直接 UNIX システムのプリミティブを呼び出す関数 (「man Pages(1): User Commands 」のセクション 2 で説明) 以外の、JFP で提供する特殊ライブラリ について説明します。 関数宣言は、各マニュアルページに示してある #include ファイルから取り込むことができます。
文字とは、マシンのバイトに適合できる ビットパターンを指します (ただし、言語によっては"文字" は 1 バイト以上を必要とし、 複数バイトで表現されます)。
NULL 文字とは、値が 0 の文字を指し、 C 言語では便宜上 ¥0 と表されます。 文字配列とは、文字の並び (シーケンス) を指します。NULL 終了文字配列 (文字列) とは、最後の文字が NULL 文字である文字の並びを指します。NULL 文字列とは、終了 NULL 文字だけを含む文字配列を指します。 NULL ポインタとは、0 をポインタにキャストすることによって 得られる値を指します。C 言語では、 NULL の値は絶対にどのような合法的なポインタとも マッチしません。ですから、ポインタを返す関数のほとんどは、ポインタを使ってエラーを示すために NULL を返します。 NULL マクロは <stdio.h> の中で定義されています。 size_t の型は適切なヘッダーの中に定義されています。
MT レベルのライブラリの詳細については attributes(5) を参照してください。
通常、/usr/include
通常、/usr/lib
ar(1), cc(1B), ld(1), nm(1),
intro(2),
intro(3), stdio(3S), pthread_atfork(3T)
libadm(4), libc(4), libelf(4), libdl(4), libkvm(4), libmapmalloc(4), libmp(4), libnisdb(4), libnsl(4), librac(4), libresolv(4), librpcsvc(4), libsocket(4), libpthread(4), libthread(4), libxfn(4), libxnet(4)
プロファイリングツール
ANSI C Programmer's Guide
浮動小数点の値を返す関数の場合、エラー処理はコンパイルのモードによって変わります。cc に -Xt オプションを指定した場合 (デフォルト)、指定された引数を定義していないとき、または、値を表現できないとき、これらの関数は 0、+-HUGE、または NaN という決まった値を返します。-Xa および -Xc コンパイルモードでは、+-HUGE の代わりに +-HUGE_VAL が返されます ( HUGE_VAL および HUGE は math.h の中で定義されています。HUGE_VAL は無限を表し、 HUGE は単精度小数点の最大値を表します)。
マルチスレッドアプリケーションをコンパイルする際、_POSIX_C_SOURCE フラグ、_POSIX_PTHREAD_SEMANTICS フラグ、_REENTRANT フラグのいずれかのフラグを、コマンド行 に定義しなければなりません。これにより、マルチスレッドのアプリケーションだけに 適用される関数の定義が特別に有効になります。POSIX.1003.1c に適合するアプリケーションに対しては、_POSIX_C_SOURCE フラグに 199506L 以上の値を定義してください。
cc [flags ]file... -D_POSIX_C_SOURCE=199506L -lpthread |
Solaris の fork() と fork1() 関数を使用した POSIX では、 次のようにコンパイルしてください。
cc [flags ]file... -D_POSIX_PTHREAD_SEMANTICS -lthread |
Solaris では、 次のようにコンパイルしてください。
cc [flags ]file... -D_REENTRANT -lthread |
シングルスレッドのアプリケーションを作成する際、上記のフラグを定義してはいけません。定義しないことにより、 マルチスレッドをサポートしていない旧リリースの Solaris 上で実行可能なバイナリが生成されます。
Unsafe インタフェースは、メインスレッド以外からは 呼び出さないでください。これはアプリケーションの安全な実行を保証するためです。
MT-Safe インタフェースは、各関数やライブラリのマニュアルページの「注意事項」 の項に記述されています。インタフェースが MT-Safe である旨が マニュアルページ中に明示されていないときは、そのインタフェースは Unsafe であるとみなしてください。
早期のバインディングを可能にするための非 NULL 値 に対して、環境変数 LD_BIND_NOW
を設定してください。詳細については、「リンカーとライブラリ」中の再配置に関する説明を参照してください。
ここで説明する関数、外部変数、またマクロを ユーザーのプログラムの中で再定義してはいけません。他の名前を再定義してもこれらのライブラリの動作に影響を与えませんが、同じ名前を再定義すると、インクルードヘッダーの宣言と衝突してしまいます。
INCDIR の中にあるヘッダーは、 本マニュアルで説明するほとんどの関数のプロトタイプを提供します (関数のプロトタイプとは、引数の型を含む関数宣言のことです)。関数のプロトタイプを使用すると、ユーザーのプログラムの中で使用されている 上記関数の使用法が間違っていないか、コンパイラがチェックすることができます。
lint プログラムチェッカを使用すると、ヘッダーが #include 文によってインクルードされていないという矛盾をチェック することができます。セクション 2、 3C、 3S の定義は自動的にチェックされます。 その他の定義をチェックする場合、lint に -l オプションを指定します (たとえば、libm の定義をチェックするには -lm を指定します)。できるだけ lint を使用されることを強くお勧めします。「 プロファイリングツール 」の lint に関する章を参照してください。
STREAMS と stream の違いには十分気を付けてください。 STREAMS とは、カーネルの機構の一種を指し、 ネットワークサービスとデータ通信ドライバの開発をサポートします。 STREAMS は、ユーティリティルーチン、カーネル機能、そして データ構造体から構成されます。stream とは、STREAMS に関連するバッファリングで使用されるファイルを指します。stream は <stdio.h> の中で FILE 型へのポインタとして定義されています。
各要素の詳細な定義では、実装に特有なシンボリック名を参照しなければならないこともあります。しかし、アプリケーションプログラムで使用できるかどうか 期待するのは必須ではありません。これらのシンボリック名の多くは、境界の条件やシステムの制限を記述するものです。
本セクションでは、分かりやすくするために、このような実装に特有な値をシンボリック名にしています。このようなシンボリック名は必ず中括弧 ({ }) で囲まれ、 他の実装に特有な定数のシンボリック名と区別されます。 後者のシンボリック名には、アプリケーションはヘッダーを使ってアクセスできます。 前者のシンボリック名にアクセスするためには、アプリケーションプログラムはヘッダーを使う必要はありません。しかし、このようなシンボリック名は特定のシステムの文書の中で 定義できます (していることもあります)。
一般には、移植可能なアプリケーションプログラムは、コードの中で、このようなシンボリック名を参照してはいけません。たとえば、あるアプリケーションプログラムは、あるルーチンに提供された引数リストの長さが {ARG_MAX} より大きいかどうかをテストしてはなりません。
説明
JFP 関数およびライブラリの序章
jconv(3X) を参照
ibmjcode(3X) を参照
ibmjcode(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
ibmjcode(3X) を参照
IBM 漢字コード用変換ルーチン
ibmjcode(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
jctype(3X) を参照
ワイド文字の変換
ワイド文字の分類マクロおよび関数
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
コード変換
jconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jconv(3X) を参照
jconv(3X) を参照
jconv(3X) を参照
jconv(3X) を参照
jconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
jisconv(3X) を参照
日本語ロケール用のワイド文字変換
日本語ロケールの文字クラスの定義
wstring(3X) を参照
wstring(3X) を参照
wstring(3X) を参照
wstring(3X) を参照
wstring(3X) を参照
wstring(3X) を参照
ワイド文字列操作
wstring(3X) を参照
wstring(3X) を参照
wstring(3X) を参照
wstring(3X) を参照
wstring(3X) を参照
wstring(3X) を参照
wstring(3X) を参照
wchar_t 文字列の倍精度浮動小数点数への変換
wstring(3X) を参照
ワイド文字列の整数への変換
名前 | 機能説明 | 定義 | MT レベルのライブラリ | ファイル | 関連項目 | 診断 | マルチスレッドアプリケーションに関する注意事項 | リアルタイムアプリケーション | 注意事項 | ライブラリ一覧