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


OpenVMS マニュアル


 

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

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

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


目次 索引




ファイルのアクセスおよび変更時刻を設定します。

形式

#include <time.h>

int utimes (const char *path, const struct timeval times[2]);


引数



path

ファイルへのポインタ。

times

timeval構造体の配列。第 1 の配列メンバは最終アクセスの日付と時刻を,第 2 のメンバは最終変更の日付と時刻を表します。 timeval構造体に含まれる時刻は Epoch 以来の経過秒数とマイクロ秒数を表しますが,最も近い秒への丸めが行われることもあります。

説明

utimes関数は, path 引数がポイントするファイルのアクセスおよび変更時刻を, times 引数の値に設定します。 utimes関数では,マイクロ秒までの精度で時刻を指定することができます。

times 引数が NULL ポインタである場合には,ファイルのアクセスおよび変更時刻は現在の時刻に設定されます。関数をこの形で使用するためには,プロセスの実効ユーザ ID がファイルのオーナと一致する,またはプロセスがファイルへの書き込み許可を持っているか,適切な特権を持っている必要があります。

実行に成功すると, utimesは最後のファイル状態の変更時刻 st_ctimeを更新します。

注意 (Integrity, Alpha)

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

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

この変更が行われる以前, statおよび fstat関数は,以下のファイル属性に基づいて st_ctimest_mtime,および st_atimeフィールドの値を設定していました。

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

また,ファイル変更時刻については, utimeおよび utimesは ATR$C_REVDATE ファイル属性を変更し,ファイル・アクセス時刻引数は無視していました。

変更が行われて以降,ODS-5 デバイス上のファイルについては, statおよび fstat関数は,以下の新しいファイル属性に基づいて st_ctimest_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_atimest_mtimeに設定します。

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

互換性を保つために,デバイスの種類にかかわらず, statfstatutime,および utimesの以前の動作はデフォルトのままとなっています。

新しい動作を有効にするためには,アプリケーションを呼び出す前に, DECC$EFS_FILE_TIMESTAMPS 論理名を明示的に "ENABLE" に定義する必要があります。この論理名を設定しても, ODS-2 デバイス上のファイルに対する statfstatutime,および utimesの動作には影響はありません。


戻り値

0 実行に成功しました。
-1    エラーを示します。ファイルの時刻は変更されず,関数は errno を以下のいずれかの値に設定します。

utimes 関数は,以下の場合に 失敗します。

  • EACCES--- path 接頭辞のコンポーネントで検索許可が拒否された。または, times 引数が NULL ポインタで,プロセスの実効ユーザ ID がファイルのオーナと一致せず,書き込みアクセスが拒否された。

  • ELOOP--- path を解決する過程で検出したシンボリック・リンクの数が多すぎた。

  • ENAMETOOLONG--- path 引数の長さが PATH_MAX を超えた, pathname コンポーネントが NAME_MAX よりも長かった,またはシンボリック・リンクのパス名解決の過程で,長さが PATH_MAX を超える中間結果が生成された。

  • ENOENT--- path が既存のファイルを指定していない,または path が空の文字列である。

  • ENOTDIR--- path 接頭辞のコンポーネントがディレクトリでない。

  • EPERM--- times 引数は NULL ポインタではなく,呼び出し元プロセスの実効ユーザ ID はファイルへの書き込みアクセスを持っているが,ファイルのオーナと一致せず,呼び出し元プロセスは適切な特権を持っていない。

  • EROFS---ファイルを含んでいるファイル・システムは読み込み専用である。


目次 索引

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