tail head cat sleep
QR code linking to this page

manページ  — LINK

名称

link – ハードファイルリンクを作成する

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <unistd.h>

int
link(const char *name1, const char *name2);

解説

link() システムコールは、 name1 が指す下層オブジェクトの属性を持つ、指定のディレクトリエントリ (ハードリンク) name2 を不可分に作成します。 リンクが正常に完了すると下層オブジェクトのリンクカウントが増加します。 name1name2 は、下層オブジェクトへのアクセスとアクセス権を等しく共有します。

name1 を削除してもファイル name2 は削除されず、下層オブジェクトのリンクカウントが減少します。

name1 引数によって指されるオブジェクト はハードリンクが成功するために存在している必要があり、 name1name2 の両方が同じファイルシステム上に存在している必要があります。 name1 引数はディレクトリであってはなりません。

戻り値

The link function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

link() システムコールは次の場合に処理に失敗し、リンクは作成されません:
[ENOTDIR]
  いずれかの前置パス名の構成要素がディレクトリではありません。
[ENAMETOOLONG]
  いずれかのパス名の構成要素が 255 文字を越えているか、 またはいずれかのパス名全体の長さが 1023 文字を越えています。
[ENOENT]
  いずれかの前置パス名の構成要素が存在しません。
[EOPNOTSUPP]
  name1 によって指定されたファイルが入っているファイルシステムが リンクをサポートしていません。
[EMLINK]
  name1 で指定されたファイルのリンクカウントが 32767 を越えます。
[EACCES]
  いずれかの前置パス名の構成要素について検索許可が拒否されています。
[EACCES]
  要求されたリンクは、書込み許可を拒否するモードのディレクトリに 書き込むことを要求しています。
[ELOOP]
  パス名を変換するときに検出されたシンボリックリンクが多すぎます。
[ENOENT]
  name1 によって指定されたファイルが存在しません。
[EEXIST]
  name2 によって指定されたリンクが存在します。
[EPERM]
  name1 によって指定されたファイルはディレクトリであるか、 変更禁止もしくは追加のみ可能であるとフラグが付けられています ( chflags(2) 参照)。
[EXDEV]
  name2 によって指定されたリンクと name1 によって指定されたファイルが異なるファイルシステム上にあります。
[ENOSPC]
  ディレクトリを格納しているファイルシステムに容量が残っていないため、 新しいリンクを入れるエントリを置くディレクトリを拡張できません。
[EDQUOT]
  ディレクトリを格納しているファイルシステムでユーザのディスクブロックに 関するクォータが枯渇したため、 新しいリンクを入れるエントリを置くディレクトリを拡張できません。
[EIO] ディレクトリエントリを作成するためファイルシステムに 読み書きしている間に入出力エラーが発生しました。
[EROFS]
  要求されたリンクは、読取り専用ファイルシステム上のディレクトリに 書込みすることを要求しています。
[EFAULT]
  指定されたパス名の 1 つが、プロセスに割り当てられた アドレス空間の範囲外を指しています。

関連項目

readlink(2), symlink(2), unlink(2)

規格

link() システムコールは IEEE Std 1003.1-90 ("POSIX.1") に適合しています。

歴史

link() 関数は AT&T v7 で登場しました。

従来、スーパユーザは link() システムコールによってディレクトリをリンクでき、 これはファイルシステムの一貫性を破壊するものでした。 この実装では、このような操作はもはや許されません。


LINK (2) March 5, 1999

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

"I liken starting one's computing career with Unix, say as an undergraduate, to being born in East Africa. It is intolerably hot, your body is covered with lice and flies, you are malnourished and you suffer from numerous curable diseases. But, as far as young East Africans can tell, this is simply the natural condition and they live within it. By the time they find out differently, it is too late. They already think that the writing of shell scripts is a natural act."
— Ken Pier, Xerox PARC