library home hp.com home products and services support and drivers solutions
cd-rom home
End of Jump to page title
HP OpenVMS Systems
Documentation

Jump to content


OpenVMS

OpenVMS
HP C ランタイム・ライブラリ・
リファレンス・マニュアル (下巻)


前へ 次へ 目次 索引



ferror_unlocked (Alpha, I64)

ferror関数と同様ですが, flockfilefunlockfileで保護された範囲内だけで使用します。

形式

#include <stdio.h>

int ferror_unlocked (FILE *file_ptr);


引数

file_ptr

ファイル・ポインタ。

説明

リエントラント版である ferror関数は,複数スレッドからの同時呼び出しに対してロックされます。その結果,ストリームの一貫性を保証するためのオーバヘッドが生じます。アンロック版である ferror_unlockedを使用すると,このオーバヘッドを避けることができます。 ferror_unlocked関数は, ferror関数と機能的に同じですが,スレッド・セーフな方法で実装する必要がない点が異なります。 ferror_unlocked関数は, flockfile関数と funlockfile関数を対で使用して保護された範囲内でだけ,安全に使用することができます。呼び出し元は, ferror_unlockedを使用する前に,ストリームを確実にロックする必要があります。

flockfileftrylockfile,および funlockfileも参照してください。


戻り値

0 成功を示します。
0 以外の整数 エラーが発生したことを示します。


fflush

バッファに格納されている情報を指定されたファイルに書き込みます。

形式

#include <stdio.h>

int fflush (FILE *file_ptr);


引数

file_ptr

ファイル・ポインタ。この引数が NULL ポインタの場合は,現在オープンされているすべてのファイルに関連付けられているすべてのバッファの内容が書き込まれます。

説明

出力ファイルは通常,端末に出力される場合にだけバッファに格納されます。ただし, stderrの場合は例外で,デフォルトではバッファに格納されません。

fflush関数は, HP C RTL バッファの内容を書き込みます。しかし,RMS には独自のバッファがあります。 fflush関数を呼び出しても,ファイルがディスクに書き込まれるという保証はありません ( バッファをディスクに書き込む方法については, fsyncの説明を参照してください )。

file_ptr によって示されるファイルがレコード・モードでオープンされていて,バッファにまだ書き込まれていないデータがある場合は, fflushは常にレコードを生成します。


戻り値

0 操作が正常終了したことを示します。
EOF バッファに格納されているデータをファイルに書き込むことができないか,ファイル制御ブロックが出力ファイルに関連付けられていないことを示します。


ffs

文字列から,セットされている最初のビットのインデックスを検索します。

形式

#include <strings.h>

int ffs (int iteger);


引数

integer

最初のビットがセットされているかどうか確認する整数。

説明

ffs関数は,セットされている最初のビットを検索し ( 最下位ビットから順に確認します ),そのビットのインデックスを返します。ビットには 1 ( 最下位ビット ) から順に番号が付けられます。

戻り値

x セットされている最初のビットのインデックス。
0 index が 0 であることを示します。


fgetc

指定されたファイルから次の文字を返します。

形式

#include <stdio.h>

int fgetc (FILE *file_ptr);


引数

file_ptr

アクセスするファイルを指すポインタ。

説明

fgetc関数は,指定されたファイルから次の文字を取り出して返します。

fgetc_unlocked関数と getcマクロも参照してください。


戻り値

x 返された文字。
EOF ファイルの終端 (EOF) またはエラーを示します。


fgetc_unlocked (Alpha, I64)

fgetc関数と同様ですが, flockfilefunlockfileで保護された範囲内だけで使用します。

形式

#include <stdio.h>

int fgetc_unlocked (FILE *file_ptr);


引数

file_ptr

ファイル・ポインタ。

説明

リエントラント版である fgetc関数は,複数スレッドからの同時呼び出しに対してロックされます。その結果,ストリームの一貫性を保証するためのオーバヘッドが生じます。アンロック版である fgetc_unlockedを使用すると,このオーバヘッドを避けることができます。 fgetc_unlocked関数は fgetc関数と機能的に同じですが, fgetc_unlockedflockfile関数と funlockfile関数を対で使用して保護された範囲内でだけ安全に使用することができる点で異なります。呼び出し元は, fgetc_unlockedを使用する前に,ストリームを確実にロックする必要があります。

getc_unlockedflockfileftrylockfile,および funlockfileも参照してください。


戻り値

n 返された文字。
EOF ファイルの終端 (EOF) またはエラーを示します。


fgetname

ファイル・ポインタに関連付けられているファイル指定を返します。

形式

#include <stdio.h>

char *fgetname (FILE *file_ptr, char *buffer, ...);

関数バリアント fgetname関数には, _fgetname32および _fgetname64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。

引数

file_ptr

ファイル・ポインタ。

buffer

ファイル指定を格納できる十分な大きさの文字列を指すポインタ。

...

省略可能な追加引数であり,1 または 0 に指定できます。1 を指定すると, fgetname関数は OpenVMS 形式でファイル指定を返します。 0 を指定すると,UNIX 形式でファイル指定を返します。この引数を指定しないと,現在のコマンド言語インタプリタに従ってファイル名を返します。 UNIX 形式のファイル指定の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.4.3 項を参照してください。

説明

fgetname関数は,バッファ内の指定されたアドレスにファイル指定を格納します。バッファは完全に修飾されたファイル指定を格納できるだけの十分な大きさの配列でなければなりません ( 最大長は 256 文字 )。

戻り値

n バッファのアドレス。
0 エラーを示します。


制限事項

fgetname関数は HP C RTL 固有の関数であり,移植できません。

fgetpos

指定されたファイルの現在のファイルの位置を格納します。

形式

#include <stdio.h>

int fgetpos (FILE *stream, fpos_t *pos);


引数

stream

ファイル・ポインタ。

pos

インプリメンテーションで定義されている構造体を指すポインタ。 fgetpos関数はこの構造体に,この後の fsetposの呼び出しで使用できる情報を格納します。

説明

fgetpos関数は,stream によって示されるストリームのファイル位置指示子の現在の値を, pos によって示されるオブジェクトに格納します。

戻り値

0 正常終了を示します。
- 1 エラーが発生したことを示します。



#include <stdio.h> 
#include <stdlib.h> 
 
main() 
{ 
    FILE *fp; 
    int stat, 
        i; 
    int character; 
    char ch, 
         c_ptr[130], 
         d_ptr[130]; 
    fpos_t posit; 
 
    /* Open a file for writing.  */ 
 
    if ((fp = fopen("file.dat", "w+")) == NULL) { 
        perror("open"); 
        exit(1); 
    } 
    
   /* Get the beginning position in the file.  */ 
 
    if (fgetpos(fp, &posit) != 0) 
        perror("fgetpos"); 
 
    /* Write some data to the file. */ 
 
    if (fprintf(fp, "this is a test\n") == 0) { 
        perror("fprintf"); 
        exit(1); 
    } 
 
    /* Set the file position back to the beginning. */ 
 
    if (fsetpos(fp, &posit) != 0) 
        perror("fsetpos"); 
 
    fgets(c_ptr, 130, fp); 
    puts(c_ptr);        /* Should be "this is a test."  */ 
 
    /* Close the file. */ 
 
    if (fclose(fp) != 0) { 
        perror("close"); 
        exit(1); 
    } 
 
}   


fgets

指定されたファイルから 1 行を読み込みます。指定された最大文字数,または改行文字まで ( どちらか最初に検出された方 ) を読み込みます。文字列は str に格納されます。

形式

#include <stdio.h>

char *fgets (char *str, int maxchar, FILE *file_ptr);

関数バリアント fgets関数には, _fgets32および _fgets64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。

引数

str

ファイルから読み込まれた情報を格納できるだけの十分な大きさの文字列を指すポインタ。

maxchar

読み込む最大文字数。

file_ptr

ファイル・ポインタ。

説明

fgets関数は,行をヌル文字 (\0) で区切ります。 gets関数と異なり, fgets関数は,読み込んだ文字数が maxchar に指定された文字数より少ない場合,入力行を区切るために改行文字をユーザ・バッファに追加します。

file_ptr によって示されるファイルがレコード・モードでオープンされている場合は, fgetsはレコードの終端を改行文字と同じ方法で取り扱います。したがって,改行文字までを読み込むか,またはレコードの終端までを読み込みます。


戻り値

x str を指すポインタ。
NULL ファイルの終端 (EOF) またはエラーを示します。読み込みエラーが発生した場合は, str の内容は未定義です。



#include <stdio.h> 
#include <stdlib.h> 
#include <unixio.h> 
 
main() 
{ 
    FILE *fp; 
    char c_ptr[130]; 
 
    /* Create a dummy data file  */ 
 
    if ((fp = fopen("file.dat", "w+")) == NULL) { 
        perror("open"); 
        exit(1); 
    } 
 
    fprintf(fp, "this is a test\n") ; 
    fclose(fp) ; 
 
    /* Open a file with some data -"this is a test"   */ 
 
    if ((fp = fopen("file.dat", "r+")) == NULL) { 
       perror("open error") ; 
        exit(1); 
    } 
 
    fgets(c_ptr, 130, fp); 
    puts(c_ptr);        /* Display what fgets got.  */ 
    fclose(fp); 
 
    delete("file.dat") ; 
} 


fgetwc

指定されたファイルから次の文字を読み込み,その文字をワイド文字コードに変換します。

形式

#include <wchar.h>

wint_t fgetwc (FILE *file_ptr);


引数

file_ptr

アクセスするファイルを指すポインタ。

説明

正常終了すると, fgetwc関数は, file_ptr によって示されるファイルから読み込んだ後, wint_t型に変換したワイド文字コードを返します。ファイルがファイルの終端 (EOF) にある場合は,EOF 指示子が設定され, WEOF が返されます。I/O 読み込みエラーが発生した場合は,エラー指示子が設定され,WEOF が返されます。

アプリケーションで ferrorまたは feofを使用すると,エラー条件と EOF 条件を区別できます。


戻り値

x 読み込んだ文字のワイド文字コード。
WEOF ファイルの終端 (EOF) またはエラーを示します。読み込みエラーが発生した場合は, errno は次のいずれかの値に設定されます。

  • EALREADY---同じファイルに対して操作がすでに実行されています。

  • EBADF---ファイル記述子が不正です。

  • EILSEQ---不正な文字が検出されました。


fgetws

指定されたファイルから 1 行のワイド文字を読み込みます。

形式

#include <wchar.h>

wchar_t *fgetws (wchar_t *wstr, int maxchar, FILE *file_ptr);

関数バリアント fgetws関数には, _fgetws32および _fgetws64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。

引数

wstr

ファイルから読み込んだ情報を格納できるたけの十分な大きさのワイド文字の文字列を指すポインタ。

maxchar

読み込むワイド文字の最大文字数。

file_ptr

ファイル・ポインタ。

説明

fgetws関数は,指定されたファイルからワイド文字を読み込み, wstr によって示される配列に格納します。この関数は,maxchar - 1 文字まで読み込むか,改行文字が読み込まれ,変換され,wstr に転送されるまで読み込むか,またはファイルの終端 (EOF) 条件が検出されるまで読み込みます。行末はヌル・ワイド文字で区切られます。読み込んだ文字数が maxchar 文字より少ない場合, fgetwsは入力行の最後に改行文字を付けてユーザ・バッファに格納します。

戻り値

x wstr を指すポインタ。
NULL ファイルの終端 (EOF) またはエラーを示します。読み込みエラーが発生した場合, wstr の内容は未定義です。読み込みエラーが発生した場合, errno が設定されます。設定される可能性のある errno の値の一覧については, fgetwc を参照してください。



#include <stdlib.h> 
#include <stdio.h> 
#include <locale.h> 
#include <wchar.h> 
 
main() 
{ 
    wchar_t wstr[80], 
           *ret; 
    FILE *fp; 
 
    /* Create a dummy data file  */ 
 
    if ((fp = fopen("file.dat", "w+")) == NULL) { 
        perror("open"); 
        exit(1); 
    } 
 
    fprintf(fp, "this is a test\n") ; 
    fclose(fp) ; 
 
   /* Open a test file containing : "this is a test" */ 
 
    if ((fp = fopen("file.dat", "r")) == (FILE *) NULL) { 
        perror("File open error"); 
        exit(EXIT_FAILURE); 
    } 
 
    ret = fgetws(wstr, 80, fp); 
    if (ret == (wchar_t *) NULL) { 
        perror("fgetws failure"); 
        exit(EXIT_FAILURE); 
    } 
 
    fputws(wstr, stdout); 
    fclose(fp); 
    delete("file.dat"); 
} 


fileno

指定されたファイル・ポインタに関連付けられているファイル記述子を返します。

形式

#include <stdio.h>

int fileno (FILE *file_ptr);


引数

file_ptr

ファイル・ポインタ。

説明

バージョン 5.2 またはそれ以前のバージョンの C コンパイラを使用する場合は, filenoマクロの定義を解除します。


#if defined(fileno) 
#undef fileno 
#endif 


戻り値

x 整数のファイル記述子。
- 1 エラーを示します。


前へ 次へ 目次 索引