Unix-system-calls-link

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

[top]#

[[File:]]

[[File:]]

|Web |This Site

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

選択した読書

Copyright©2014 by finddevguides

  Home     References     Discussion Forums     About TP  

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

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

広告

NAME

リンク-ファイルに新しい名前を付けます

概要

  • #include <unistd.h> *
  • int link(const char * oldpath 、const char * newpath ); *

説明

*link* ()は、既存のファイルへの新しいリンク(ハードリンクとも呼ばれます)を作成します。

_newpath_が存在する場合、上書きされません。

この新しい名前は、どの操作でも古い名前とまったく同じように使用できます。両方の名前が同じファイルを参照している(したがって、同じアクセス許可と所有権を持っている)ため、どちらの名前が「オリジナル」であったかを知ることはできません。

返り値

成功すると、ゼロが返されます。 エラーの場合、-1が返され、_errno_が適切に設定されます。

エラー

Tag

説明

*EACCES*

_newpath_を含むディレクトリへの書き込みアクセスが拒否されるか、_oldpath_または_newpath_のパスプレフィックスにあるディレクトリの1つに対する検索許可が拒否されます。 ( path_resolution (2)も参照してください。)

*EEXIST*

_newpath_は既に存在します。

*EFAULT*

_oldpath_または_newpath_は、アクセス可能なアドレス空間の外側を指します。

*EIO*

I/Oエラーが発生しました。

*ELOOP*

_oldpath_または_newpath_の解決中に検出されたシンボリックリンクが多すぎます。

*EMLINK*

_oldpath_によって参照されるファイルには、既に最大数のリンクがあります。

*ENAMETOOLONG*

_oldpath_または_newpath_が長すぎました。

*ENOENT*

_oldpath_または_newpath_のディレクトリコンポーネントが存在しないか、ぶら下がっているシンボリックリンクです。

*ENOMEM*

カーネルメモリが不足していました。

*ENOSPC*

ファイルを含むデバイスには、新しいディレクトリエントリ用のスペースがありません。

*ENOTDIR*

_oldpath_または_newpath_でディレクトリとして使用されるコンポーネントは、実際にはディレクトリではありません。

*EPERM*

_oldpath_はディレクトリです。

*EPERM*

_oldpath_および_newpath_を含むファイルシステムは、ハードリンクの作成をサポートしていません。

*EROFS*

ファイルは読み取り専用ファイルシステムにあります。

*EXDEV*

_oldpath_と_newpath_は同じマウントされたファイルシステム上にありません。 (Linuxでは、ファイルシステムを複数のポイントにマウントできますが、同じファイルシステムが両方にマウントされていても、 link (2)は異なるマウントポイント間では機能しません。)

ノート

*link* ()によって作成されるハードリンクは、ファイルシステムにまたがることができません。 これが必要な場合は、 *symlink* ()を使用します。

POSIX.1-2001は、 link ()がシンボリックリンクである場合、_oldpath_を逆参照する必要があると述べています。 ただし、Linuxはそうしません:_oldpath_がシンボリックリンクの場合、_newpath_は同じシンボリックリンクファイルへの(ハード)リンクとして作成されます(つまり、_newpath_は_oldpath_が参照する同じファイルへのシンボリックリンクになります)。 他のいくつかの実装は、Linuxと同じように動作します。

準拠

SVr4、4.3BSD、POSIX.1-2001(上記を除く)。

BUGS

NFSファイルシステムでは、NFSサーバーがリンクの作成を実行し、その前に終了する場合、戻りコードが間違っている可能性があります。 stat (2)を使用して、リンクが作成されたかどうかを確認します。

関連項目

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

広告

  
Advertisements