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