日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
UTIMENSAT(2) FreeBSD システムコールマニュアル UTIMENSAT(2) 名称 futimens, utimensat -- ファイルのアクセス時刻と更新時刻を設定する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/stat.h> int futimens(int fd, const struct timespec times[2]); int utimensat(int fd, const char *path, const struct timespec times[2], int flag); 解説 path によって指定されるか、または fd によって参照されるファイルのアクセス 時刻と更新時刻は、引数 times によって指定されます。ファイルの inode-変更 時刻は、現在の時刻に設定されます。 path が相対的なパスを指定するなら、それは、現在の作業ディレクトリと相対的 であり、fd が AT_FDCWD であるなら、そうでなければ、ファイル記述子 fd と関 連付けられたディレクトリと相対的です。 timespec 構造体の tv_nsec フィールドは、現在の時間を設定するために、特別 な値 UTIME_NOW に設定することができ、または時間を変更しないままにするため に UTIME_OMIT に設定することができます。いずれにしても、tv_sec フィールド は、無視されます。 times が NULL でないなら、それは、2 つの timespec 構造体の配列を指すと仮 定されます。アクセス時刻は、最初の要素の値に設定され、更新時刻は、2 番目 の要素の値に設定されます。ファイル誕生 (作成) 時刻 (UFS2 などの) をサポー トするファイルシステムについて、2 番目の要素が現在設定された誕生時間より 古いなら、誕生時刻は、2 番目の要素が値に設定されます。誕生時刻と更新時刻 を設定するために、2 回の呼び出しが必要です。最初に、誕生時間を設定し、2 番目に更新時刻 (たぶん、より新しい) を設定します。理想的に、新しいシステ ムコールは、すぐにすべての 3 回の設定を許可して、追加されます。times が NULL であるなら、これは、UTIME_NOW に設定された両方の tv_nsec フィールド で 2 つの timespec 構造体の配列へのポインタを渡すことと同等です。 両方の tv_nsec フィールドが UTIME_OMIT であるなら、タイムスタンプは、変更 されないままとなり、パーミッションは、ファイル自身のために必要ではありま せんが、検索パーミッションは、パスの接頭辞のために必要とされます。呼び出 しは、指定されたファイルが存在しないなら、成功するかどうか分かりません。 両方の tv_nsec フィールドが UTIME_NOW であるなら、呼び出し側は、ファイル の所有者で、ファイルの書き込みパーミッションがあるか、またはスーパユーザ でなければなりません。 タイムスタンプの他のすべて値について、呼び出し側は、ファイルの所有者、ま たはスーパユーザでなければなりません。 utimensat() システムコールの flag 引数のための値は、次のリストのフラグの ビット単位の包括的な論理和 (OR) によって構成され、<fcntl.h> で定義されて います: AT_SYMLINK_NOFOLLOW path がシンボリックリンクを指定するなら、シンボリックリンクの時刻 は、変更されます。デフォルトで、utimensat() は、シンボリックリン クによって参照されるファイルの時刻を変更します。 戻り値 成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno にエラーを示す値が設定されます。 互換性 実行しているカーネルがこのシステムコールをサポートしないなら、ラッパは、 fstatat(2), futimesat(2) と lutimes(2) を使用してそれをエミュレートしま す。結果として、タイムスタンプは、最も近いマイクロ秒に切り下げられて、 UTIME_OMIT は、不可分ではなく、AT_SYMLINK_NOFOLLOW は、ファイル記述子と関 連するパスで利用可能ではありません。 エラー これらのシステムコールは、次の場合に失敗します: [EACCES] times 引数が NULL であるか、または、両方の tv_nsec 値 が、UTIME_NOW であり、プロセスの実効ユーザ ID が、ファ イルの所有者と一致せず、スーパユーザではなく、書き込み アクセスが拒否されています。 [EFAULT] times 引数が、プロセスの割り付けられたアドレス空間の外 側を指しています。 [EINVAL] times 引数によって指定された値の少なくとも 1 つの tv_nsec 構成要素に、0 未満または 999999999 より大きい 値があり、UTIME_NOW または UTIME_OMIT と等しくありませ ん。 [EIO] 影響された inode を読み込んでいるか、または書き込んで いる間に I/O エラーが起こりました。 [EPERM] times 引数が、NULL でもなく、両方の tv_nsec 値 UTIME_NOW ではなく、両方の tv_nsec 値 UTIME_OMIT でも なく、呼び出しているプロセスの実効ユーザ ID が、ファイ ルの所有者と一致せず、スーパユーザではありません。 [EPERM] 指定されたファイルに、不変または追加専用フラグの設定が あります、詳細については、chflags(2) マニュアルページ を参照してください。 [EROFS] ファイルを含んでいるファイルシステムが、読み込み専用で マウントされています。 futimens() システムコールは、次の場合に失敗します: [EBADF] fd 引数が有効な記述子を参照していません。 utimensat() システムコールは、次の場合に失敗します: [EACCES] 検索パーミッションが、パス接頭辞の構成要素のために拒否 されます。 [EBADF] path 引数が、絶対パスを指定せず、fd 引数が、AT_FDCWD でも有効なファイル記述子でもありません。 [EFAULT] path 引数が、プロセスの割り付けられたアドレス空間の外 側を指しています。 [ELOOP] パス名の変換で、非常に多くのシンボリックリンクに遭遇し ました。 [ENAMETOOLONG] パス名の構成要素が NAME_MAX 文字を越えたか、または全体 のパス名が PATH_MAX 文字を越えました。 [ENOENT] 指定されたファイルが、存在しません。 [ENOTDIR] パス接頭辞の構成要素がディレクトリではありません。 [ENOTDIR] path 引数が、絶対パスではなく、fd が、AT_FDCWD でも ディレクトリと関連したファイル記述子でもありません。 [ENOTSUP] 実行しているカーネルが、このシステムコールをサポートせ ず、AT_SYMLINK_NOFOLLOW が、ファイル記述子と関連するパ スで使用されています。 関連項目 chflags(2), stat(2), symlink(2), utimes(2), utime(3), symlink(7) 規格 futimens() と utimensat() システムコールは、IEEE Std 1003.1-2008 (``POSIX.1'') に適合するはずです。 歴史 futimens() と utimensat() システムコールは、FreeBSD 10.3 で登場しました。 FreeBSD 11.2 January 17, 2016 FreeBSD 11.2