日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




ファイル記述子によって指定されるファイルに関する情報にアクセスします。

形式

#include <stat.h>

int fstat (int file_desc, struct stat *buffer);

関数バリアント _DECC_V4_SOURCE および _VMS_V6_SOURCE 機能テスト・マクロを定義してコンパイルすると, fstat関数に対して, OpenVMS Version 7.0 より前の動作に相当するローカル時刻ベースのエントリ・ポイントが有効になります。

引数



file_desc

ファイル記述子。

buffer

stat_t型の構造体を指すポインタ。この構造体は <stat.h>ヘッダ・ファイルに定義されています。指定されたファイルに関する情報がこの引数に格納されます。 buffer によって示される構造体のメンバは次のとおりです。

メンバ 定義
st_dev dev_t 物理デバイス名を指すポインタ
st_ino[3] ino_t ファイル ID が格納される 3 ワード
st_mode mode_t ファイル "mode" (prot, dir,...)
st_nlink nlink_t UNIX システムとの互換性を維持するためにのみ提供される
st_uid uid_t オーナのユーザ ID
st_gid gid_t グループ・メンバ: st_uid から取得
st_rdev dev_t UNIX システムとの互換性 -- 常に 0
st_size off_t バイト数で表したファイル・サイズ
st_atime time_t ファイル・アクセス時刻,常に st_mtime と同じ
st_mtime time_t 最終変更時刻
st_ctime time_t ファイル作成時刻
st_fab_rfm char レコード・フォーマット
st_fab_rat char レコード属性
st_fab_fsz char 固定ヘッダ・サイズ
st_fab_mrs unsigned レコード・サイズ

dev_tino_toff_tmode_tnlink_tuid_tgid_ttime_t<stat.h>ヘッダ・ファイルに定義されています。しかし,互換性を維持するように設定してコンパイルした場合は (/DEFINE=_DECC_V4_SOURCE), dev_tino_toff_tだけが定義されます。

off_tデータ型は 32 ビット整数または 64 ビット整数です。 64 ビットインタフェースの場合, 2 GB 以上のファイル・サイズが認められます。このインタフェースは,次に示すように _LARGEFILE 機能テスト・マクロを定義することにより,コンパイル時に選択できます。

CC/DEFINE=_LARGEFILE 

OpenVMS Version 7.0 では,時刻は Epoch (1970 年 1 月 1 日 GMT 標準時 00:00:00) からの時間 (秒数) で与えられます。

st_mode構造体メンバは状態情報モードであり, <stat.h>ヘッダ・ファイルに定義されています。 st_modeビットは次のとおりです。

ビット 定数 定義
0170000 S_IFMT ファイルのタイプ
0040000 S_IFDIR ディレクトリ
0020000 S_IFCHR 文字スペシャル
0060000 S_IFBLK ブロック・スペシャル
0100000 S_IFREG 一般
0030000 S_IFMPC 多重化された文字スペシャル
0070000 S_IFMPB 多重化されたブロック・スペシャル
0004000 S_ISUID 実行時にユーザ ID を設定
0002000 S_ISGID 実行時にグループ ID を設定
0001000 S_ISVTX 使用後もスワップされたテキストを保存
0000400 S_IREAD 読み込みアクセス許可,オーナ
0000200 S_IWRITE 書き込みアクセス許可,オーナ
0000100 S_IEXEC 実行/検索アクセス許可,オーナ


説明

fstat関数はリモート・ネットワーク・ファイルに対しては機能しません。

注意 (Integrity, Alpha)

OpenVMS Alpha システムおよび OpenVMS Integrity システムでは, statfstatutimeutimes関数は, POSIX 準拠のファイル・タイムスタンプに対する新しいファイル・システム・サポートを活用できるように拡張されています。

このサポートは,OpenVMS Alpha Version 7.3 およびそれ以降の OpenVMS Alpha システムと OpenVMS Integrity システムの ODS-5 デバイスでのみ使用できます。

このように変更される前は, stat関数と fstat関数は st_ctime,st_mtime, st_atime フィールドの値を,次のファイル属性をもとに設定していました。

st_ctime - ATR$C_CREDATE (ファイル作成時刻)
st_mtime - ATR$C_REVDATE (ファイル改訂時刻)
st_atime - ファイル・アクセス時刻がサポートされないため,常に st_mtime に設定。

また,ファイル変更時刻に関しては, utimeutimesは ATR$C_REVDATE ファイル属性を変更し, file-access-time 引数を無視していました。

機能が変更された後,ODS-5 デバイスのファイルでは, stat関数と fstat関数は次の新しいファイル属性をもとに,st_ctime,st_mtime, st_atime フィールドの値を設定します。

st_ctime - ATR$C_ATTDATE (最終属性変更時刻)
st_mtime - ATR$C_MODDATE (最終データ変更時刻)
st_atime - ATR$C_ACCDATE (最終アクセス時刻)

ODS-2 デバイスなど,ATR$C_ACCDATE が 0 の場合, stat関数と fstat関数は st_atime を st_mtime に設定します。

ファイル変更時刻に関しては, utime関数と utimes関数は ATR$C_REVDATE ファイル属性と ATR$C_MODDATE ファイル属性の両方を変更します。ファイル・アクセス時刻に関しては,これらの関数は ATR$C_ACCDATE ファイル属性を変更します。 ATR$C_MODDATE ファイル属性と ATR$C_ACCDATE ファイル属性を ODS-2 デバイスで設定しても,効果がありません。

互換性を維持するために,デバイスの種類にかかわらず, statfstatutimeutimesの以前の動作はデフォルトのまま残されています。

新しい動作は,アプリケーションを起動する前に,実行時に DECC$EFS_FILE_TIMESTAMPS 論理名を "ENABLE" に定義することにより明示的に有効にする必要があります。この論理名を設定しても,ODS-2 デバイスのファイルの場合, statfstatutimeutimesの動作には影響ありません。


戻り値

0 正常終了を示します。
-1    保護違反以外のエラーを示します。
-2    保護違反を示します。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.