|
|
|
|
|
CFgetalloc、CFgetalloc32(3fml)
名前
CFgetalloc()、CFgetalloc32() - フィールドの取得、領域の割り当て、および変換
形式
#include <stdio.h>
#include "fml.h"
char *
CFgetalloc(FBFR *fbfr, FLDID fieldid, FLDOCC oc, int type, FLDLEN
*extralen)
#include "fml32.h"
char *
CFgetalloc32(FBFR32 *fbfr, FLDID32 fieldid, FLDOCC32 oc, int type,
FLDLEN32 *extralen)
機能説明
CFgetalloc() は、バッファから指定されたフィールドを獲得し、領域を割り当てます。次に、そのフィールドをユーザ指定のタイプに変換し、その位置を指すポインタを返します。fbfr は、フィールド化バッファを指すポインタです。fieldid は、フィールド識別子です。oc はフィールドのオカレンス番号です。type は、ユーザが変換したいフィールドの変換後のデータ・タイプです。呼び出し時において extralen は、値を受け取るために割り当てられる追加領域の長さを指すポインタです。戻り時において extralen は、実際に使用された領域の大きさを指すポインタです。extralen が NULL の場合、割り当てる追加領域はなく、実際の長さは返されません。ユーザには、(変換された) 戻り値を解放する責任があります。
FLD_PTR、FLD_FML32、または FLD_VIEW32 のいずれかのフィールド・タイプが使用されると、この関数は異常終了します。CFgetalloc() または CFgetalloc32() が使用されている場合に、これらのフィールド・タイプの 1 つが指定されると、Ferror に FEBADOP が設定されます。
CFgetalloc32() は 32 ビット FML で使用されます。
マルチスレッドのアプリケーション内のスレッドは、TPINVALIDCONTEXT を含め、どのようなコンテキスト状態で実行している場合でも、CFgetalloc() または CFgetalloc32() を呼び出すことができます。
戻り値
正常終了時には、CFgetalloc() は、変換された値を指すポインタを返します。エラー時には、NULL を返し、Ferror を設定してエラー条件を示します。
エラー
次の条件の場合、CFgetalloc() は異常終了し、Ferror を次の値に設定します。
バッファが適切なバウンダリで開始していません。
バッファがフィールド化されていないか、または Finit() で初期化されていません。
malloc() を使用しての領域の動的な割り当てが失敗しました。
フィールド・オカレンスが要求されましたが、指定されたフィールドとオカレンスの両方、あるいはどちらかは、フィールド化バッファにありませんでした。
指定されたフィールド識別子は無効です。
指定されたフィールド識別子は無効です。
指定されたフィールド・タイプは無効です (FLD_PTR、FLD_FML32、および FLD_VIEW32 など)。
関連項目
「FML 関数の紹介」、Fgetalloc、Fgetalloc32(3fml)
|
|
|
|
|
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|