これらの関数が戻す情報は次のとおりです。
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 より長くすることはできません。