SYMLINK(2)

名称
symlink - ファイルへのシンボリックリンクの作成

ライブラリ
libc

書式
<unistd.h> int symlink(const char *name1, const char *name2)

解説
name1 へのシンボリックリンク name2 が作成されます (name2 は作成されるファイルの名前で、 name1 はシンボリックリンクの作成に使用される文字列です)。 どちらの名前も任意のパス名です。 ファイルが同じファイルシステムに存在する必要はありません。

戻り値

エラー
以下のような場合、シンボリックリンクはエラーとなります:

[ENOTDIR]
    name2 パスの構成要素中にディレクトリ以外のものが含まれています。

[ENAMETOOLONG]
    パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。

[ENOENT]
    指定されたファイルが存在しません。

[EACCES]
    name2 指定されたパスには、検索が許可されていないディレクトリが含まれています。

[ELOOP]
    パス名を変換するときに検出されたシンボリックリンクが多すぎます。

[EEXIST]
    name2 引数で指されるパス名がすでに存在します。

[EIO]
    name2 のディレクトリエントリの作成中、または name2 の inode の割り当て中、あるいは name2 のリンクコンテンツの書き出し中に入出力エラーが発生しました。

[EROFS]
    ファイル name2 は読取り専用ファイルシステム上にあります。

[ENOSPC]
    新しいシンボリックリンクを作成するディレクトリを含むファイルシステム上に 空間が残っていないため、新しいシンボリックリンクを作成できません。

[ENOSPC]
    シンボリックリンクを含むファイルシステム上にシンボリックリンクを 作る空間が残っていないため、新しいシンボリックリンクを作成できません。

[ENOSPC]
    シンボリックリンクを作成するファイルシステム上の inode が枯渇しました。

[EDQUOT]
    新しいシンボリックリンクのエントリを配置するディレクトリを含む ファイルシステム上のユーザのディスクブロックが枯渇したため、作成できません。

[EDQUOT]
    シンボリックリンクを作るファイルシステム上のユーザのディスクブロックの クォータが枯渇したため、新しいシンボリックリンクを作成できません。

[EDQUOT]
    シンボリックリンクを作成するファイルシステム上のユーザの inode の クォータが枯渇しました。

[EIO]
    ディレクトリエントリの作成中、または inode の割り当て中に 入出力エラーが発生しました。

[EFAULT]
    name1 引数または name2 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。

関連項目
ln(1), link(2), lstat(2), readlink(2), unlink(2), symlink(7)

歴史
symlink() システムコールは、 4.2BSD で登場しました。