日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
utimes |
ファイルのアクセスおよび変更時刻を設定します。
#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 システムでは, stat, fstat, utime,および utimes関数は,新しいファイル・システムの POSIX 準拠のファイル・タイムスタンプ・サポートに対応して拡張されています。このサポートは,V7.3 およびそれ以降の OpenVMS Alpha システム上の ODS-5 デバイスでのみ使用できます。
この変更が行われる以前, statおよび fstat関数は,以下のファイル属性に基づいて st_ctime, st_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_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 ファイル属性を変更します。 ODS-2 デバイス上で ATR$C_MODDATE および ATR$C_ACCDATE ファイル属性を設定しても効果はありません。
互換性を保つために,デバイスの種類にかかわらず, stat, fstat, utime,および utimesの以前の動作はデフォルトのままとなっています。
新しい動作を有効にするためには,アプリケーションを呼び出す前に, DECC$EFS_FILE_TIMESTAMPS 論理名を明示的に "ENABLE" に定義する必要があります。この論理名を設定しても, ODS-2 デバイス上のファイルに対する stat, fstat, utime,および 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---ファイルを含んでいるファイル・システムは読み込み専用である。
目次 | 索引 |
|