Unix-system-calls-openat
[top]#
[[File:]]
[[File:]] |
|Web |This Site
- 初心者向けのUnix *
- Unix-ホーム
- Unix-はじめに
- Unix-ファイル管理
- Unix-ディレクトリ
- Unix-ファイル権限
- Unix-環境
- Unix-基本ユーティリティ
- Unix-パイプとフィルタ
- Unix-プロセス
- Unix-コミュニケーション
- Unix-The Vi Editor
- Unix Shellプログラミング*
- Unix-シェルとは?
- Unix-変数の使用
- Unix-特殊変数
- Unix-配列の使用
- Unix-基本的な演算子
- Unix-意思決定
- Unix-シェルループ
- Unix-ループ制御
- Unix-シェル置換
- Unix-引用メカニズム
- Unix-IOリダイレクト
- UNIX-シェル関数
- Unix-マンページヘルプ
- 高度なUnix *
- Unix-正規表現
- Unix-ファイルシステムの基本
- Unix-ユーザー管理
- Unix-システムパフォーマンス
- Unix-システムログ
- Unix-信号とトラップ
- Unixの便利なリファレンス*
- Unix-便利なコマンド
- Unix-クイックガイド
- Unix-組み込み関数
- Unix-システムコール
- Unix-コマンドリスト
- Unixの役立つリソース*
- Unix役立つリソース
選択した読書
- http://www.finddevguides.com/computer_glossary [コンピュータ用語集] *http://www.finddevguides.com/computer_whoiswho[Who is Who]
Copyright©2014 by finddevguides
Home | References | Discussion Forums | About TP |
openat()-Unix、Linuxシステムコール
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]
広告
NAME
openat-ディレクトリファイル記述子に関連するファイルを開く
概要
#include <fcntl.h> int openat(int dirfd, const char* pathname, int flags); int openat(int dirfd, const char *pathname, int flags ", mode_t " mode ); |
説明
_pathname_で指定されたパス名が相対である場合、ファイル記述子_dirfd_によって参照されるディレクトリを基準として解釈されます(呼び出しプロセスの現在の作業ディレクトリに相対するのではなく、 open (2)によって行われます)相対パス名)。
_pathname_で指定されたパス名が相対であり、_dirfd_が特別な値 AT_FDCWD である場合、_pathname_は呼び出しプロセスの現在の作業ディレクトリを基準に解釈されます( open (2)など)。
_pathname_で指定されたパス名が絶対の場合、_dirfd_は無視されます。
返り値
成功すると、 openat ()は新しいファイル記述子を返します。 エラーの場合、-1が返され、_errno_がエラーを示すように設定されます。
エラー
Tag
説明
_dirfd_は有効なファイル記述子ではありません。
_pathname_は相対パスであり、_dirfd_はディレクトリ以外のファイルを参照するファイル記述子です。
ノート
まず、 openat ()を使用すると、 open (2)を使用して現在の作業ディレクトリ以外のディレクトリにあるファイルを開くときに発生する可能性のある競合状態を回避できます。 これらの競合状態は、 open ()に指定されたディレクトリプレフィックスの一部のコンポーネントが、 open ()の呼び出しと並行して変更される可能性があるという事実に起因します。 このような競合は、ターゲットディレクトリのファイル記述子を開き、そのファイル記述子を openat ()の_dirfd_引数として指定することで回避できます。
第二に、 openat ()は、アプリケーションによって維持されるファイル記述子を介して、スレッドごとの「現在の作業ディレクトリ」の実装を許可します。 (この機能は_ proc/self/fd/ dirfdの使用に基づくトリックによっても取得できますが、効率は低下します。)
準拠
このシステムコールは非標準ですが、POSIX.1の将来のリビジョンに含めることを提案しています。 Solarisにも同様のシステムコールが存在します。
バージョン
関連項目
- faccessat(2)
- fchmodat(2)
- fchownat(2)
- fstatat(2)
- futimesat(2)
- linkat(2)
- mkdirat(2)
- mknodat(2)
- open(2)
- path_resolution(2)
- readlinkat(2)
- renameat(2)
- symlinkat(2)
- unlinkat(2)
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]
広告
Advertisements |