可搬用関数:ファイルに関する詳細情報を返します。
モジュール:USE DFPORT
形式
result = STAT (name, statb)
name
(入力) CHARACTER*(*)。検証するファイル名。
statb
(出力) INTEGER(4)。大きさが 12 の 1 次元配列。
結果
結果の型は INTEGER(4) です。問合せが成功した場合,結果はゼロで,そうでなければ,エラーコード ENOENT (指定したファイルが開けませんでした) です。その他のエラー・コートの一覧は,「IERRNO」を参照してください。
statb の要素は,以下の値を含んでいます。
要素 | 説明 | 注意 |
---|---|---|
statb(1) | ファイルのある装置 | 常に 0 |
statb(2) | ファイル Inode 番号 | 常に 0 |
statb(3) | ファイルの参照許可モード | (以下の表を参照) |
statb(4) | ハード・リンク数 | 常に 1 |
statb(5) | 所有者のユーザー ID | 常に 1 |
statb(6) | 所有者のグループ ID | 常に 1 |
statb(7) | ファイルがあるロー・デバイス | 常に 0 |
statb(8) | ファイルの大きさ (バイト) | |
statb(9) | ファイルが最後に参照された時刻 | (非 FAT ファイル・システムのみ。FAT システムでは未定義。) |
statb(10) | ファイルが最後に修正された時刻 | |
statb(11) | 最後にファイル状態が変更された時刻 | stat(10) と同じ |
statb(12) | ブロック・サイズ | 常に 1 |
時刻は TIME 関数が返すのと同じ書式 (グリニッジ平均時 1970 年 1 月 1 日 00:00:00 からの秒数) です。
ファイル参照許可モード (statb の第 3 要素) は以下の定数の 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' | 所有者の実行特権 | ファイル拡張子に依存 (.EXE, .COM, .CMD, または .BAT) |
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 と同じ |
STAT は FSTAT と同じ情報を返しますが,外部装置番号の代わりに名前でファイルを参照します。
注意:INQUIRE 文もまた,ファイル・プロパティに関する情報を提供します。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
例
USE DFPORT CHARACTER*12 file_name INTEGER(4) info_array(12) print *, 'Enter file to examine: ' read *, file_name ISTATUS = STAT (file_name, info_array) if (.not. istatus) then print *, info_array else print *, 'Error = ',istatus end if end