スポンサーリンク

SYMLINK(2) FreeBSD システムコールマニュアル SYMLINK(2)

名称

symlink − ファイルへのシンボリックリンクの作成

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <unistd.h>

int

symlink(const char *name1, const char *name2);

解説

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

戻り値

関数 symlink() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

エラー

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

       [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 で登場しました。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク