![]() |
![]() |
|
|
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 ``='')
選択フラグおよびそれらの意味を次に示します。
フラグが指定されない場合、値 (fldval) を持った fldname で指定されているフィールドの新しいオカレンスが、フィールド化バッファに追加されます。後続の改行 (-) は、入力が済んだ各バッファの後に置く必要があります。
FLD_FML32 および FLD_VIEW32 型の値の場合、Fextread32() はそれぞれ、入れ子になった FML32 バッファと VIEW32 フィールドを生成します。この関数は、FLD_PTR フィールド・タイプを無視します。関数に FLD_PTR 型の値が与えられても、エラーは返されません。
Fextread32() は 32 ビット FML で使用されます。
マルチスレッドのアプリケーション内のスレッドは、TPINVALIDCONTEXT を含め、どのようなコンテキスト状態で実行している場合でも、Fextread() または Fextread32() を呼び出すことができます。
戻り値
この関数は、エラー発生時に -1 を返し、Ferror を設定してエラー条件を示します。
エラー
次の条件の場合、Fextread() は異常終了し、Ferror を次の値に設定します。
バッファが適切なバウンダリで開始していません。
バッファがフィールド化されていないか、または Finit() で初期化されていません。
フィールド値は、フィールド化バッファで追加あるいは変更されますが、バッファには、十分な領域が残っていません。
指定されたフィールド番号は無効です。
UNIX システム・コール・エラーが起こりました。外部の整数型変数 errno は、システム・コールによるエラーを示すために設定され、外部の整数型変数 Uunixerr (Uunix.h で定義されている値) は、エラーを返したシステム・コールに設定されます。
フィールド・テーブルにないフィールド名が指定されました。
外部バッファの形式に文法エラーがありました。発生する可能性のあるエラーとしては、不正な EOF 指示子、次の形式にない入力行 (fieldid or name tab >value)、2 つの制御文字、1000 文字より大きいフィールド値、あるいは無効な 16 進のエスケープ・シーケンスなどです。
削除するフィールドが、フィールド化バッファにありません。
malloc() を使用しての領域の動的な割り当てが失敗しました。
iop の値が NULL です。
移植性
この関数は、Windows 用の BEA Tuxedo System Workstation DLL では使用できません。
関連項目
「FML 関数の紹介」、Fprint、Fprint32(3fml)
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|