Unix-system-calls-faccessat

提供:Dev Guides
移動先:案内検索

[top]#

[[File:]]

[[File:]]

|Web |This Site

  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

  Home     References     Discussion Forums     About TP  

faccessat()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

faccessat-ディレクトリファイル記述子に関連するファイルのパーミッションを変更する

概要

#include <unistd.h> int faccessat(int dirfd, const char* path, int mode ", int " flags );

説明

*faccessat* ()システムコールは、このマニュアルページで説明されている違いを除いて、 *access* (2)とまったく同じ方法で動作します。

_path_で指定されたパス名が相対である場合、ファイル記述子_dirfd_によって参照されるディレクトリを基準として解釈されます(呼び出しプロセスの現在の作業ディレクトリに関連するのではなく、 access (2)によって行われます)相対パス名)。

_path_で指定されたパス名が相対パスであり、_dirfd_が特別な値 AT_FDCWD である場合、_path_は呼び出しプロセスの現在の作業ディレクトリを基準に解釈されます( access (2)など)。

_path_で指定されたパス名が絶対の場合、_dirfd_は無視されます。

_flags_は、次の値の0個以上の論理和で構成されます。

Code

説明

*AT_EACCESS*

有効なユーザーIDとグループIDを使用してアクセスチェックを実行します。 デフォルトでは、 faccessat ()は実効ID( access (2)など)を使用します。

*AT_SYMLINK_NOFOLLOW*

_path_がシンボリックリンクの場合、逆参照しないでください。代わりに、リンク自体に関する情報を返します。

返り値

成功すると、 faccessat ()は0を返します。 エラーの場合、-1が返され、_errno_がエラーを示すように設定されます。

エラー

*access* (2)で発生する同じエラーは、 *faccessat* ()でも発生する可能性があります。 *faccessat* ()に対して次の追加エラーが発生する可能性があります。
Tag Description
EBADF dirfd is not a valid file descriptor.
EINVAL Invalid flag specified in flags.
ENOTDIR path is a relative path and dirfd is a file descriptor referring to a file other than a directory.

ノート

*faccessat* ()の必要性の説明については、 *openat* (2)を参照してください。

準拠

このシステムコールは非標準ですが、POSIX.1の将来のリビジョンに含めることを提案しています。

GLIBCノート

*AT_EACCESS* および *AT_SYMLINK_NOFOLLOW* フラグは、実際には *faccessat* ()のglibcラッパー関数内に実装されています。 これらのフラグのいずれかが指定されている場合、ラッパー関数は *fstatat* (2)を使用してアクセス許可を決定します。

バージョン

*faccessat* ()は、カーネル2.6.16でLinuxに追加されました。

関連項目

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]

広告

  
Advertisements