マニュアルページ fstat.3f
名前
stat, lstat, fstat - ファイル状態の取得
形式
integer*4 function stat(name,statb)
character*(*) name 0.br integer*4 statb(13)
integer*4 function lstat(name,statb)
character*(*) name
integer*4 statb(13)
integer function fstat(lunit,statb)
integer*4 statb(13)
機能説明
これらのルーチンは、ファイルに関する詳細情報を返します。
関数 stat と lstat は、ファイル名 name による問い合わせを 行
います。
関数 fstat は、FORTRAN 論理ユニット lunit による問い合わせを
行います。
各関数の値は、正常終了の場合はゼロ、それ以外の場合は該当する
エラーコードになります。
変数 statb には、ファイルの状態構造が格納されます。
呼び出しシーケンス
stat:
integer*4 stat, statb(13)
character name*(*)
ierr = stat ( name, statb )
fstat:
integer*4 fstat, logunit, statb(13)
ierr = fstat ( logunit, statb )
lstat:
integer*4 lstat, statb(13)
character name*(*)
ierr = lstat ( name, statb )
配列 statb に返される情報の意味は、 stat (2) で取り上げら れ
ている構造体 stat の説明にあるとおりです。予備の値は含まれて
いません。順序は、次のとおりです。
statb(1) 存在するデバイスの i ノード
statb(2) ファイルの i ノード番号
statb(3) 保護
statb(4) ファイルへのハードリンクの数
statb(5) オーナーのユーザー ID
statb(6) オーナーのグループ ID
statb(7) デバイスのタイプ (i ノードがデバイスの場合)
statb(8) ファイルの合計サイズ
statb(9) ファイルの最終アクセス時刻
statb(10) ファイルの最終変更時刻
statb(11) ファイルの最終状態変更時刻
statb(12) ファイルシステム入出力オプションの最適ブロックサイズ
statb(13) 割り当てられたブロックの実際の数
注意事項
これらのルーチンは、INTEGER*4 データの範囲を超えるような「大
き な」ファイル、つまり、2 GB 以上あるようなファイル上で使用
すると、エラーや警告メッセージを返さないで、ファイル全体のサ
イズ (statb(8)) を 32 ビットに切り上げた値を返します。このよ
うな大規模ファイルを使用することができるのは、Solaris 2.6 以
降のオペレーティング環境です。大規模ファイルを使用する際は、
stat64(3F)、 lstat64(3F)、 fstat64(3F) などを使用してくだ さ
い。
lstat が lstat(2) を呼び出す際に、 stat は libc ライブラリに
ある stat(2) を呼び出します。これら 2 つの libc 関数の違いに
ついては、 stat(2) のマニュアルページを参照してください。 つ
まり、ファイルがシンボリックリンクの場合、結果が異なります。
lstat はリンクに関する情報を返しますが、 stat はリンクが参照
するファイルについての情報を返します。
ファイル
libfui.a
関連項目
stat(2)、 access(3F)、 perror(3F)、 time(3F)
stat64(3F)、 lstat64(3F)、 fstat64(3F)
使用上の留意点
パス名の長さは、 <sys/param.h> で定義されてい る MAXPATHLEN
の値を超えないようにしてください。