integer*4 function stat(name,statb) character*(*) name 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 は、filename によるクエリーを実行します。
関数 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) device inode resides on statb(2) this inode's number statb(3) protection statb(4) number of hard links to the file statb(5) user id of owner statb(6) group id of owner statb(7) the device type, for inode that is device statb(8) total size of file statb(9) file last access time statb(10) file last modify time statb(11) file last status change time statb(12) optimal blocksize for file system i/o ops statb(13) actual number of blocks allocated
これらのルーチンは、2G バイトを超えるファイル (バイトサイズが INTEGER*4 データの範囲を超えるような「大規模」ファイル) で使用されても、エラーや警告を返しません。ただし、ファイル全体のサイズとして返される値 (statb) は、下位の 32 ビットに切り捨てられます。大規模ファイルのサポートは、Solaris 2.6 オペレーティング環境のリリースで導入されました。大規模ファイルを使用する場合は、これらのルーチンの 64 ビット版 (stat64(3F)、lstat64(3F)、および fstat64(3F)) を使用してください。
stat は libc ライブラリにある stat(2) を呼び出しますが、lstat は lstat(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 の値を超えることはできません。