BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   BEA Tuxedo FML リファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


Fextread、Fextread32(3fml)

名前

Fextread()Fextread32() - フォーマットされた出力からフィールド化バッファを作成

形式

#include <stdio.h>  
#include "fml.h"
int
Fextread(FBFR *fbfr, FILE *iop)
#include "fml32.h"
int
Fextread32(FBFR32 *fbfr, FILE *iop)

機能説明

新規Fextread() は、フォーマットされた出力 (つまり、Fprint() の出力) からフィールド化バッファを作成するために使用されます。パラメータは、フィールド化バッファを指すポインタ (fbfr) とファイル・ストリームを指すポインタ (iop) です。入力のファイル形式は、基本的に Fprint() の出力形式と同じです。次にそれを示します。

[flag] fldname or fldid tab> fldval (or fldname, if flag is ``='')

選択フラグおよびそれらの意味を次に示します。

+

フィールド化バッファにあるフィールドのオカレンス 0 は、指定された値に変更されます。

-

指定されたフィールドのオカレンス 0 は、フィールド化バッファから削除されます。タブ文字が必要です。すべてのフィールド値は、無視されます。

=

この場合、入力行の最後のフィールドは、フィールド化バッファ内のフィールド名です。そのフィールドのオカレンス 0 の値は、入力行の最初のフィールドで指定されたオカレンス 0 に割り当てられます。

#

この行はコメントとして扱われ、無視されます。

フラグが指定されない場合、値 (fldval) を持った fldname で指定されているフィールドの新しいオカレンスが、フィールド化バッファに追加されます。後続の改行 (-) は、入力が済んだ各バッファの後に置く必要があります。

FLD_FML32 および FLD_VIEW32 型の値の場合、Fextread32() はそれぞれ、入れ子になった FML32 バッファと VIEW32 フィールドを生成します。この関数は、FLD_PTR フィールド・タイプを無視します。関数に FLD_PTR 型の値が与えられても、エラーは返されません。

Fextread32() は 32 ビット FML で使用されます。

マルチスレッドのアプリケーション内のスレッドは、TPINVALIDCONTEXT を含め、どのようなコンテキスト状態で実行している場合でも、Fextread() または Fextread32() を呼び出すことができます。

戻り値

この関数は、エラー発生時に -1 を返し、Ferror を設定してエラー条件を示します。

エラー

次の条件の場合、Fextread() は異常終了し、Ferror を次の値に設定します。

[FALIGNERR]

"fielded buffer not aligned"
バッファが適切なバウンダリで開始していません。

[FNOTFLD]

"buffer not fielded"
バッファがフィールド化されていないか、または Finit() で初期化されていません。

[FNOSPACE]

"no space in fielded buffer"
フィールド値は、フィールド化バッファで追加あるいは変更されますが、バッファには、十分な領域が残っていません。

[FBADFLD]

"unknown field number or type"
指定されたフィールド番号は無効です。

[FEUNIX]

"UNIX system call error"
UNIX システム・コール・エラーが起こりました。外部の整数型変数 errno は、システム・コールによるエラーを示すために設定され、外部の整数型変数 Uunixerr (Uunix.h で定義されている値) は、エラーを返したシステム・コールに設定されます。

[FBADNAME]

"unknown field name"
フィールド・テーブルにないフィールド名が指定されました。

[FSYNTAX]

"bad syntax in format"
外部バッファの形式に文法エラーがありました。発生する可能性のあるエラーとしては、不正な EOF 指示子、次の形式にない入力行 (fieldid or name tab >value)、2 つの制御文字、1000 文字より大きいフィールド値、あるいは無効な 16 進のエスケープ・シーケンスなどです。

[FNOTPRES]

"field not present"
削除するフィールドが、フィールド化バッファにありません。

[FMALLOC]

"malloc failed"
malloc() を使用しての領域の動的な割り当てが失敗しました。

[FEINVAL]

"invalid parameter"
iop の値が NULL です。

移植性

この関数は、Windows 用の BEA Tuxedo System Workstation DLL では使用できません。

関連項目

FML 関数の紹介」、Fprint、Fprint32(3fml)

 

先頭へ戻る 前のトピックへ 次のトピックへ