LINK(2) — NEWS-OS Programmer’s Manual
名称
link − ファイルへのハードリンクを作成する
形式
link(name1, name2)
char ∗name1, ∗name2;
解説
name1 へのハードリンクが作成され、 そのリンクの名前は name2 となります。 name1 は、 存在していなければなりません。
ハードリンクでは、 name1 と name2 との両方が同じファイルシステムに置かれなければなりません。 呼び出しユーザがスーパーユーザでない限り、 name1 がディレクトリであってはなりません。 古い link と新しい link との両方が、 オブジェクトに対して同等なアクセスおよび権利を 共有します。
リターン値
正常終了時には、 値 0 が返されます。 そうでない場合には、 値 −1 が返され、 errno がエラーを 示すようにセットされます。
エラー
以下に示されている項目のうち、1つ以上が真である場合には、 link は失敗し、 リンクは作成されません。
[ENOTDIR] いずれかのパスプレフィックスの構成要素がディレクトリではないものがある。
[EINVAL] パス名に最上位ビットのセットされたキャラクタが含まれている。 (NEWS-OSでは起こりません。)
[ENAMETOOLONG]
いずれかのパス名の 1構成要素が 255 バイトを 超えている、 またはパス名全体が 1023 バイトを 超えている。
[ENOENT] いずれかのパスプレフィックスの構成要素が存在していないものがある。
[EACCES] いずれかのパスプレフィックスの構成要素がサーチパーミッションを 許していないものがある。
[EACCES] request されたリンクが、 書き込みパーミッションを 許していない モードを 有するディレクトリへの書き込みを 要求している。
[ELOOP] パス名の処理で遭遇したシンボリックリンクの数が多すぎる。
[ENOENT] name1 で指定されたファイルが存在していない。
[EEXIST] name2 で指定されたリンクが既に存在している。
[EPERM] name1 で指定されたファイルはディレクトリであり、 かつ、 有効ユーザIDがスーパーユーザのものではない。
[EXDEV] name2 で指定されたリンクとname1 で指定されたファイルが、 異なるファイルシステム上に置かれる。
[ENOSPC] 新しいリンクのエントリを 入れるディレクトリのあるファイルシステムにスペースが残されていないために、 そのディレクトリを 拡張することができない。
[EDQUOT] 新しいリンクのエントリを 入れるディレクトリのあるファイルシステムで、 そのユーザのディスクブロックの割り当て量が使い果たされているために、 そのディレクトリを 拡張することができない。
[EIO] ファイルシステムへの書き込みまたはファイルシステムからの読み取りを 行っている間に入出力エラーが発生した。
[EROFS] 要求されたリンクが、 読み取り専用のファイルシステム上にあるディレクトリへの書き込みを 要求している。
[EFAULT] パス名の1つが、 そのプロセスの割り当てアドレススペースの外を 指定した。
関連事項
symlink(2), unlink(2), cslink(7)
NEWS-OSRelease 4.1C