Oracle Solaris Studio 12.4 Man Pages

印刷ビューの終了

更新: January 2015
 
 

lstat(3F)

名前

stat , lstat , fstat - ファイルのステータスを取得する

形式

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)

説明

これらのルーチンは、ファイルに関する詳細情報を返します。

関数 statlstat は、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)) を使用してください。

statlibc ライブラリにある stat(2) を呼び出しますが、lstatlstat(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 の値を超えることはできません。