マニュアルページ fseek.3f




名前

     fseek, fseeko64, ftell, ftello64 - 論理ユニットへのファイ ル
     の再位置付け


形式

     integer*4 function fseek (lunit, offset, from)
       integer*4 lunit
       integer*4 offset
          integer*8 offset (64 ビット環境の場合)
       integer*4 from

     integer*4 function fseeko64 (lunit, offset, from)
       integer*4 lunit
       integer*8 offset
       integer*4 from

     integer*4 function ftell (lunit)
       integer*4 lunit

     integer*8 function ftello64 (lunit)
       integer*4 lunit


機能説明

     lunit は、オープンしている論理ユニットを指していなければなり
     ま せ ん。 offset は、 from によって指定された位置からのオフ
     セット (バイト単位) です。 from の有効な値は次のとおりです。


          0 (ファイルの先頭)
          1 (現在の位置)
          2 (ファイルの終端)

     fseek の戻り値は、正常終了の場合は 0、それ以外の場合はシステ
     ムエラーコードです ( perror(3F) を参照)。

     関数 ftell は、指定された論理ユニットに対応するファイルの 現
     在の位置を返します。この値は、ファイルの先頭からのバイト数 (
     オフセット) です。この値が負のときはエラーを示し、反転した値
     がシステムエラーコードを表しています ( perror(3F) を参照)。

     ftell から返されるオフセットの値は、後から、ファイルの同じ場
     所 を参照する際、 fseek で位置を設定するために使うことができ
     ます。

     注意: 順編成ファイルでは、 fseek につづいて出力操 作  (WRITE
     など) を行うと、新しい位置に続くすべてのデータが消去され、新
     しいデータレコードに置き換わり、そこにファイルの終端マークが
     つけられます。再書き出しは、直接アクセスファイルにのみ行うこ
     とができます。

     fseeko64 と ftello64 は、それぞれ、 fseek 、 ftell と同じ 機
     能ですが、INTEGER*4 のデータ (2 GB) の範囲よりもずっと大きい
     ファイル上で使用することができます。大規模ファイルのサポート
     は、Solaris 2.6 以降のオペレーティング環境に適用されます。

     大規模ファイルを取り扱う場合、 ftello64 から結果を受け取る変
     数 も INTEGER*8 と宣言する必要があります。このような処置をと
     らないと、値は切り上げられてしまいます。


注意事項

     64 ビット環境で動作するように、 -xarch=v9 、 v9a のような コ
     ン パイラオプションをつけてコンパイルした場合、 fseek に渡さ
     れるオフセット変数が、INTEGER*8 と宣言されていなくてはなりま
     せん。

     64 ビットバージョンの fseeko64 と ftello64 は、32 ビット環境
     と 64 ビット環境での互換作業を支援するために用意されたもので
     す。


ファイル

     libfui.a


関連項目

     fseek(3S)perror(3F)