FUTIMESAT(2)

名前
futimesat - ディレクトリファイルディスクリプターに対する相対パスのファイルのタイムスタンプを変更する

書式
#include <fcntl.h> /* AT_* 定数の定義 */
#include <sys/time.h>

int futimesat(int dirfd, const char *pathname,
              const struct timeval times[2]);

    glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

futimesat(): _GNU_SOURCE

説明
このシステムコールは廃止予定である。代わりに utimensat を使用すること。

futimesat() システムコールは utimes() と全く同様に動作するが、このマニュアルページで説明する点が異なる。

pathname で渡されたパス名が相対パスの場合、 パス名はファイルディスクリプター dirfd が参照するディレクトリに対する相対パスと解釈される (相対パスの場合に utimes(2) で行われるように、呼び出したプロセスのカレントワーキングディレクトリに対する相対パスと解釈されるわけではない)。

pathname が相対パスで dirfd が特別な値 AT_FDCWD の場合、 pathname は (utimes(2) 同様) 呼び出したプロセスのカレントワーキングディレクトリに対する相対パスと解釈される。

pathname が絶対パスの場合、 dirfd は無視される。

返り値
成功すると、 futimesat() は 0 を返す。 エラーの場合、-1 を返し、 errno にエラーを示す値をセットする。

エラー
utimes(2) で発生する可能性があるエラーのいくつかは futimesat() でも起こること可能性がある。 また、 以下のエラーも futimesat() では発生することがある。

EBADF
    dirfd が有効なファイルディスクリプターでない。

ENOTDIR
    pathname が相対パスで、 dirfd がディレクトリ以外のファイルを参照するファイルディスクリプターである。

バージョン
futimesat() はカーネル 2.6.16 で Linux に追加された。 ライブラリのサポートは glibc バージョン 2.4 で追加された。

準拠
このシステムコールは非標準である。 POSIX.1 に提案された仕様に基づいて実装されたが、 その仕様は utimensat(2) で置き換えれた。

同様のシステムコールが Solaris に存在する。

注意

  glibc での注意
pathname が NULL の場合、 glibc の futimesat() のラッパー関数は dirfd が参照するファイルの時刻情報を更新する。

関連項目
stat(2), utimensat(2), utimes(2), futimes(3), path_resolution(7)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。