![]() |
![]() |
|
|
CFadd、CFadd32(3fml)
名前
CFadd()、CFadd32() - フィールドの変換および追加
形式
#include <stdio.h>
#include "fml.h"
int CFadd(FBFR *fbfr、FLDID fieldid、char *value、FLDLEN len、int type)
#include fml32.h>
int
CFadd32(FBFR32 *fbfr、FLDID32 fieldid、char *value、FLDLEN32 len、int type)
機能説明
CFadd() は、Fadd() に似た動きをしますが、Cfadd は、フィールド化バッファにフィールドが追加される場合、value をユーザ指定の型から fieldid 型に変換します。fbfr は、フィールド化バッファを指すポインタです。fieldid は、フィールド識別子です。value は、追加される値を指すポインタです。len は、追加される値の長さです。len は、FLD_CARRAY 型の場合のみ必要です。type は、value 内のフィールドのデータ型です。
バッファにフィールドが追加される前に、データ項目の型は、ユーザが提供した型から fieldid で指定された型に変換されます。ソース・タイプが FLD_CARRY (任意の文字配列) である場合、len 引数は、配列の長さに設定される必要があります。その他の場合、長さは無視されます。C 言語が、12345L のような構成を許していないために、変換され、追加されるフィールドの値は、最初に、変数 value に入れられる必要があります。
FLD_PTR、FLD_FML32、または FLD_VIEW32 のフィールド・タイプが使用されると、この関数は異常終了します。CFadd() または CFadd32() が使用されている場合に、これらのフィールド・タイプの 1 つが指定されると、Ferror に FEBADOP が設定されます。
CFadd32() は 32 ビット FML で使用されます。
マルチスレッドのアプリケーション内のスレッドは、TPINVALIDCONTEXT を含め、どのようなコンテキスト状態で実行している場合でも、CFadd() または CFadd32() を呼び出すことができます。
戻り値
この関数は、エラー発生時に -1 を返し、Ferror を設定してエラー条件を示します。
エラー
次の条件の場合、CFadd() は異常終了し、Ferror を次の値に設定します。
バッファが適切なバウンダリで開始していません。
バッファがフィールド化されていないか、または Finit() で初期化されていません。
CARRAY (バッファ) から文字列に変換するときに、malloc(3) を使用しての領域の動的な割り当てが失敗しました。
呼び出された関数の引数の 1 つが無効です (たとえば、value パラメータに NULL が指定された場合)。
フィールド値は、フィールド化バッファで追加あるいは変更されますが、バッファには、十分な領域が残っていません。
指定されたフィールド識別子は無効です。
指定されたフィールド識別子は無効です。
指定されたフィールド・タイプは無効です (FLD_PTR、FLD_FML32、および FLD_VIEW32 など)。
関連項目
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|