これらの関数が戻す情報は次のとおりです。
stat と lstat は、どちらもファイル名を用いて問い合わせをします。fstat は論理装置を用いて問い合わせをします。
関数は、次のように呼び出します。
INTEGER*4 stat ierr = stat ( name, statb ) |
|||
name |
character*n |
入力 |
ファイルの名前 |
statb |
INTEGER*4 |
出力 |
ファイル状態の情報が格納される要素数 13 の配列 |
戻り値 |
INTEGER*4 |
出力 |
ierr=0: 正常 ierr>0: エラーコード |
例 1: stat():
character name*18 /'MyFile'/ INTEGER*4 ierr, stat, lunit/1/, statb(13) open( unit=lunit, file=name ) ierr = stat ( name, statb ) if ( ierr .ne. 0 ) stop 'stat: error' write(*,*)'所有者の UID = ',statb(5),', 1 ブロック数 = ',statb(13) end |
関数
INTEGER*4 fstat ierr = fstat ( lunit, statb ) |
|||
lunit |
INTEGER*4 |
入力 |
論理装置番号 |
statb |
INTEGER*4 |
出力 |
ファイル状態の情報が格納される要素数 13 の配列 |
戻り値 |
INTEGER*4 |
出力 |
ierr=0: 正常 ierr>0: エラーコード |
関数は、次のように呼び出します。
例 2: fstat():
character name*18 /'MyFile'/ INTEGER*4 fstat, lunit/1/, statb(13) open( unit=lunit, file=name ) ierr = fstat ( lunit, statb ) if ( ierr .ne. 0 ) stop 'fstat: error' write(*,*)'所有者の UID = ',statb(5),', 1 ブロック数 = ',statb(13) end |
関数は、次のように呼び出します。
ierr = lstat ( name, statb ) |
|||
name |
character*n |
入力 |
ファイル名 |
statb |
INTEGER*4 |
出力 |
ファイル状態の情報が格納される要素数 13 の配列 |
戻り値 |
INTEGER*4 |
出力 |
ierr=0: 正常 ierr>0: エラーコード |
例 3: lstat():
character name*18 /'MyFile'/ INTEGER*4 lstat, lunit/1/, statb(13) open( unit=lunit, file=name ) ierr = lstat ( name, statb ) if ( ierr .ne. 0 ) stop 'lstat: error' write(*,*)'所有者の UID = ',statb(5),', 1 ブロック数 = ',statb(13) end |
INTEGER*4 型の配列 statb に返される情報の意味は、stat(2) での構造体 stat の説明と同じです。
予備の値は含まれません。順序は次のとおりです。
statb(1) statb(2) statb(3) statb(4) statb(5) statb(6) statb(7) statb(8) statb(9) statb(10) statb(11) statb(12) statb(13) |
i ノードが存在するデバイス この i ノードの番号 保護 ファイルへのハードリンクの数 所有者のユーザー ID 所有者のグループ ID i ノードに対応するデバイスのデバイスタイプ ファイルの合計サイズ ファイルの最終アクセス時刻 ファイルの最終更新時刻 ファイルの最終状態変更時刻 ファイルシステム入出力操作の最適ブロックサイズ 実際に割り当てられているブロックの数 |
参照: stat(2)、access(3F)、perror(3F)、および time(3F)
注意: パス名は、<sys/param.h> で定義されている MAXPATHLEN より長くすることはできません。