可搬用関数:外部装置番号で指定されたファイルの詳細情報を返します。
モジュール:USE DFPORT
形式
result = FSTAT (lunit, statb)
lunit
(入力) INTEGER(4)。検証するファイルの外部装置番号。
statb
(出力) INTEGER(4)。12 の大きさを持つ 1 次元配列。以下の表は,配列の要素を示しています。
statb 要素 | 返し値 |
---|---|
statb(1) | ファイルがある装置 (常に 0) |
statb(2) | Inode 番号 (常に 0) |
statb(3) | ファイル・タイプ,属性,参照制御情報 (以下の表を参照) |
statb(4) | リンク数 (常に 1) |
statb(5) | 所有者のユーザー ID (常に 1) |
statb(6) | 所有者のグループ ID (常に 1) |
statb(7) | ファイルがあるロー装置 (常に 1) |
statb(8) | ファイルの大きさ (バイト) |
statb(9) | 最後に参照した時刻 (非 FAT ファイル・システムのみ。FAT システムでは statb(10) と同じ。) |
statb(10) | 最後に修正した時刻 |
statb(11) | 最後に状態が変更された時刻 (statb(10) と同じ) |
statb(12) | ブロック・サイズ (常に 1) |
結果
結果の型は INTEGER(4) です。成功した場合,ゼロが返され,そうでなければ,以下のようなエラー・コードが返されます。
EINVAL - 指定した装置が不正です (開かれていないか不正な装置番号です)。
モードは,以下の定数 (モジュール DFPORT がシンボル名を持つパラメタを提供) の IOR で構成されるビットマップです。
シンボル名 | 定数 | 説明 | 注意 |
---|---|---|---|
S_IFMT | O'0170000' | ファイル・タイプ | |
S_IFDIR | O'0040000' | ディレクトリ | |
S_IFCHR | O'0020000' | 特殊文字 | 決して設定されません |
S_IFBLK | O'0060000' | 特殊ブロック | 決して設定されません |
S_IFREG | O'0100000' | 一般 | |
S_IFLNK | O'0120000' | シンボル・リンク | 決して設定されません |
S_IFSOCK | O'0140000' | ソケット | 決して設定されません |
S_ISUID | O'0004000' | 実行時のユーザー ID を設定 | 決して設定されません |
S_ISGID | O'0002000' | 実行時のグループ ID を設定 | 決して設定されません |
S_ISVTX | O'0001000' | スワップしたテキストを保存 | 決して設定されません |
S_IRWXU | O'0000700' | 所有者のファイル保護 | |
S_IRUSR, S_IREAD | O'0000400' | 所有者の読み取り保護 | 常に真 |
S_IWUSR, S_IWRITE | O'0000200' | 所有者の書き込み保護 | |
S_IXUSR, S_IEXEC | O'0000100' | 所有者の実行保護 | S_IREAD が設定されていれば設定 |
S_IRWXG | O'0000070' | グループのファイル保護 | S_IRWXU と同じ |
S_IRGRP | O'0000040' | グループの読み取り保護 | S_IRUSR と同じ |
S_IWGRP | O'0000020' | グループの書込み保護 | S_IWUSR と同じ |
S_IXGRP | O'0000010' | グループの実行保護 | S_IXUSR と同じ |
S_IRWXO | O'0000007' | 他のファイル保護 | S_IRWXU と同じ |
S_IROTH | O'0000004' | 他の読み取り保護 | S_IRUSR と同じ |
S_IWOTH | O'0000002' | 他の書き込み保護 | S_IWUSRと同じ |
S_IXOTH | O'0000001' | 他の実行保護 | S_IXUSR と同じ |
時刻値は,グリニッジ平均時 1970 年 1 月 1 日 0:00:00 からの秒数として返されます。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
例
USE DFPORT integer(4) statarray(12), istat OPEN (unit=1,file='datfile.dat') ISTAT = FSTAT (1, statarray) if (.NOT. istat) then print *, statarray end if