|
|
|
|
|
Fgetlast、Fgetlast32(3fml)
名前
Fgetlast()、Fgetlast32() - 最後のオカレンスのコピーの取得
形式
#include <stdio.h>
#include "fml.h"
int
Fgetlast(FBFR *fbfr, FLDID fieldid, FLDOCC *oc, char *value, FLDLEN
*maxlen)
#include "fml32.h"
int
Fgetlast32(FBFR32 *fbfr, FLDID32 fieldid, FLDOCC32 *oc, char
*value, FLDLEN32 *maxlen)
機能説明
Fgetlast() は、フィールド識別子 (fieldid) で識別される最後のオカレンスの値とオカレンス番号の両方を検索するために使用されます。fbfr は、フィールド化バッファを指すポインタです。最後のフィールドのオカレンス番号を返すため、オカレンスの引数 (oc) は、整数型を指すポインタであり、整数ではありません。
呼び出し側は、プライベート・バッファを指すポインタ (loc)、バッファの長さ (*maxlen) を Fgetlast() に提供します。フィールドの長さは、*maxlen に返されます。関数が呼び出された時に、maxlen が NULL の場合は、そのフィールド値のバッファがフィールド値を入れるのには十分に大きいために、値が返されないと想定されます。loc が NULL の場合、値は返されません。oc が NULL の場合は、オカレンスは、返されません。
上記の「形式」の項では、Fgetlast() の引数 value のデータ型は、char のポインタ (C の char *) として記述されています。技術的には、これは、Fgetlast() に渡すある特別な値のみを記述します。実際、value 引数の型は、検索されるフィールドのフィールド化バッファ表現の型と同じ型のオブジェクトのポインタである必要があります。たとえば、フィールドが、FLD_LONG 型でバッファに格納されている場合は、value の型は、long のポインタ (C の long *) である必要があります。同様に、FLD_SHORT 型でバッファに格納される場合、value は、short 型のポインタ (C の short **) である必要があります。Fgetlast() は、value で指されるオブジェクトが、検索される格納済みのフィールドの型と同じ型を持っていると想定していることが重要です。
Fgetlast32() は 32 ビット FML で使用されます。
マルチスレッドのアプリケーション内のスレッドは、TPINVALIDCONTEXT を含め、どのようなコンテキスト状態で実行している場合でも、Fgetlast() または Fgetlast32() を呼び出すことができます。
戻り値
この関数は、エラー発生時に -1 を返し、Ferror を設定してエラー条件を示します。
エラー
次の条件の場合、Fgetlast() は異常終了し、Ferror を次の値に設定します。
バッファが適切なバウンダリで開始していません。
バッファがフィールド化されていないか、または Finit() で初期化されていません。
maxlen に指定されているデータ領域の大きさは、フィールド値を保持するのに十分な大きさではありません。
フィールド・オカレンスが要求されましたが、指定されたフィールドとオカレンスの両方、あるいはどちらかは、フィールド化バッファにありませんでした。
指定されたフィールド識別子は無効です。
関連項目
「FML 関数の紹介」、Fget、Fget32(3fml)、Fgetalloc、Fgetalloc32(3fml)、Fgets、Fgets32(3fml)、Fgetsa、Fgetsa32(3fml)
|
|
|
|
|
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|