Unix-system-calls-linkat

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

[top]#

[[File:]]

[[File:]]

|Web |This Site

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

選択した読書

Copyright©2014 by finddevguides

  Home     References     Discussion Forums     About TP  

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

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

広告

NAME

linkat-ディレクトリファイル記述子に関連するファイルリンクを作成する

概要

#include <unistd.h> int linkat(int olddirfd, const char* oldpath, int newdirfd, const char *newpath, int flags);

説明

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

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

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

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

_newpath_の解釈は_oldpath_の場合と同じですが、相対パス名はファイル記述子_newdirfd_によって参照されるディレクトリを基準にして解釈されます。

_flags_引数は現在使用されていないため、0として指定する必要があります。

返り値

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

エラー

*link* (2)で発生する同じエラーは、 *linkat* ()でも発生する可能性があります。 *linkat* ()では、次の追加エラーが発生する可能性があります。

Tag

説明

*EBADF*

_olddirfd_または_newdirfd_は有効なファイル記述子ではありません。

*ENOTDIR*

_oldpath_は相対パスであり、_olddirfd_はディレクトリ以外のファイルを参照するファイル記述子です。または_newpath_および_newdirfd_についても同様

ノート

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

準拠

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

バージョン

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

関連項目

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

広告

  
Advertisements