日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

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


目次 索引




入力ファイルまたは出力ファイルに新しいバッファを関連付けます。バッファリングの動作を変更することもあります。

形式

#include <stdio.h>

void setbuf (FILE *file_ptr, char *buffer);


引数



file_ptr

ファイル・ポインタ。

buffer

文字配列へのポインタ,または NULL ポインタ。

説明

setbuf関数は,指定されたファイルがオープンされた後,ただし I/O 操作が実行される前に使用することができます。

buffer が NULL ポインタである場合,この呼び出しは,同じ file_ptr,NULL の buffer ポインタ, _IONBF のバッファリング・タイプ (バッファリングなし),およびバッファ・サイズ 0 を指定する setvbuf呼び出しと等価です。

buffer が NULL ポインタでない場合,この呼び出しは,同じ file_ptr,同じ buffer ポインタ, _IOFBF のバッファリング・タイプ,および値 BUFSIZ ( <stdio.h>に定義) で指定されるバッファ・サイズを指定する setvbuf呼び出しと等価です。したがって, setbufの呼び出しで使用する buffer 引数を割り当てるときには BUFSIZ を使用するようにします。次に例を示します。

#include <stdio.h> 
   .
   .
   .
char my_buf[BUFSIZ]; 
   .
   .
   .
setbuf(stdout, my_buf); 
   .
   .
   .

ユーザ・プログラムは,ストリームに対して I/O が実行された後には, buffer の内容に依存してはなりません。 HP C RTL は,どの I/O 操作についても, buffer を使用する場合と使用しない場合があります。

もともと setbuf関数は,古いバージョンの UNIX のシステム・デフォルト・バッファの代わりに,プログラマが大きなバッファを割り当てられるようにすることを目的としていました。現在の C の実装では,デフォルト・バッファ・サイズが大きいため,この関数はほとんどのケースでは不要です。 setbuf関数は,ANSI C 標準では,古いプログラムとの互換性のために残されています。新規のプログラムでは,代わりに setvbufを使用するようにしてください。この関数では,プログラマはコンパイル時ではなく実行時にバッファ・サイズをバインドすることができますし,テスト可能な結果値が返されます。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.