Interstage Application Server Smart Repository運用ガイド
目次 索引 前ページ次ページ

第6章 アプリケーションの作成(C API)> 6.1 C APIの使用方法

6.1.3 アプリケーション開発時の注意事項

 本ライブラリを使用してアプリケーションを開発する際には、以下の注意が必要です。

動作環境


 SDKのライブラリ(F3FMirepldap2.dll)が格納されたパスは、PATH変数に定義されます。


 SDKのライブラリ(libirepldap2.so)は、/opt/FJSVirepc/libに格納されています。

コンパイル/リンクの際のオプション

 LDAPのクライアントAPI関数を使用する場合には、コンパイルやリンクの際に以下のオプションを指定する必要があります。

コンパイル時(必須)


 インクルードファイルは、以下のディレクトリにあります。

“/opt/FJSVirepc/include”

 ライブラリはマルチスレッド用を提供しています。以下を指定してください。


“-mt”


“-fPIC -D_REENTRANT”

Red Hat Enterprise Linux AS (v.4 for EM64T)でアプリケーションを作成する場合

 Red Hat Enterprise Linux AS (v.4 for EM64T)でアプリケーションを作成する場合は、gccコマンドに“-m32 -mtune=i386”オプションを指定してください。
 なお、Red Hat Enterprise Linux AS (v.4 for x86)上で作成したアプリケーションは、そのまま、Red Hat Enterprise Linux AS (v.4 for EM64T)上の32-bit互換モードで動作させることができます。

 

リンク時(必須)

インクルードファイル

 各関数を呼び出す際に使用する構造体やdefineシンボルは、idldap.hで定義されています。このため、ソース中に以下の行を記述する必要があります。

#include "idldap.h"

特殊文字を含むDN

 DNに、記号を指定する場合、いくつかの記号は特殊文字として扱われます。特殊文字を指定するには、その特殊文字の前に「\」(エンマーク)を置いてエスケープするか、または「"」(ダブル引用符)で囲む必要があります。
 エスケープが必要な特殊文字を以下に示します。

エスケープが必要な特殊文字を含むDNを指定する場合の例を以下に示します。
cn=a\b,o=Fujitsu, Inc.,c=jp

 LDAP、C言語それぞれで、「\」(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。

 「\」を含むcn属性を指定するとします。

a\b

 LDAPの規約により「\」をエスケープする必要があります。

cn=a\\b

 C言語の仕様により、この名前を指定するために、それぞれの「\」をエスケープする必要があります。

char *name1 = "cn=a\\\\b";

 同様に、「,」(カンマ)、「"」(ダブル引用符)の場合はそれぞれ次のようになります。

char *name2 = "cn=a\\,b";
char *name3 = "cn=a\\\"b";

 最初の例をC言語で使用する場合は、次のように記述します。

char *name = "cn=a\\\\b,o=Fujitsu\\, Inc.,c=jp";

日本語を含むDN、属性値の指

 DNおよび属性値に日本語を含む文字列を指定することができます。

 UTF-8形式に変換するための関数を使用してUTF-8形式に変換する必要があります。
 詳細については、“リファレンスマニュアル(API編)”の“コード変換インタフェース”を参照してください。

文字列データの受渡し

 関数のパラメタで文字列データのアドレスを指定する場合、指定された文字列の最後には、「\0」(NULL文字)が設定されていなければなりません。
 また、復帰情報として文字列データのアドレスを返す場合は、通知された文字列の最後に、「\0」(NULL文字)が設定されています。

マルチスレッド環境での使用

 LDAPのクライアントAPI関数は、ldapssl_init()を除いてスレッドセーフです。ただし、1個のセションを複数のスレッドで共有することはできません。
 複数のスレッドがSmart Repositoryサーバと通信する場合は、各スレッドが各々セションをオープンする必要があります。

アプリケーション実行時


 SSLを使用する場合、以下のパスをPATH変数に設定してください。

%ProgramFiles%\Common Files\Fujitsu Shared\F3FSSMEE


 SDKのライブラリ(libirepldap2.so)へのパスを解決してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006