Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all
名前
symlink - ファイルに新しい名前を付ける
書式
#include <unistd.h> int symlink(const char *oldpath, const char *newpath); glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照): symlink(): _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE >= 200112L
説明
symlink() は oldpath という文字列をファイルの内容として持つ newpath というシンボリックリ ンク (symbolic link) を作成する。 シンボリックリンクは実行時に解釈され、 リンクの内容でパスを置き換えて、そのパスを辿ること で、 ファイルやディレクトリに到達する。 シンボリックリンクはパスの部分に .. を含むかもしれない。これは (もしリンクの最初に使用され た場合は) リンクの 存在するディレクトリの親ディレクトリが参照される。 シンボリックリンクは (ソフトリンク (soft link) とも呼ばれ) 存在するファイルを指しているか もしれないし、 存在しないファイルを指しているかもしれない; 後者の場合は壊れたリンク (dangling link) とも呼ばれる。 シンボリックリンクの許可 (permission) は無意味である; リンクを追跡する場合には所有権 (ownership) は無視される。 ただし、リンクの削除や名前の変更が要求され、かつリンクが存在す る ディレクトリにスティッキービット (sticky bit) (S_ISVTX) が設定されている場合には、所有 権のチェックが行われる。 newpath が存在する場合には上書きはされない。
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
エラー
EACCES newpath を含んでいるディレクトリへの書き込みが拒否されたか、 newpath に含まれている ディレクトリのどれかに検索許可が与えられていない (path_resolution(7) も参照するこ と)。 EDQUOT そのファイルシステムのリソース使用量がユーザクォータに達している。対象となるリソー スは inode かディスクブロックで、どちらになるかはファイルシステムの実装依存である。 EEXIST newpath が既に存在する。 EFAULT oldpath や newpath がアクセス可能なアドレス空間の外を指している。 EIO I/O エラーが発生した。 ELOOP newpath を解決する際に遭遇したシンボリックリンクが多過ぎる。 ENAMETOOLONG oldpath または newpath が長過ぎる。 ENOENT newpath に含まれるディレクトリ部分が存在しないか、壊れたリンクであるか、 oldpath が 空文字列である。 ENOMEM 十分なカーネルメモリーがない。 ENOSPC そのファイルを含んでいるデバイスに新しいディレクトリエントリを 作成するための空きが ない。 ENOTDIR newpath に含まれるディレクトリ部分が、実際には、ディレクトリではない。 EPERM newpath を含んでいるファイルシステム (file system) が シンボリックリンクの作成をサ ポートしていない。 EROFS newpath が読み込み専用のファイルシステムに存在している。
準拠
SVr4, 4.3BSD, POSIX.1-2001.
注意
oldpath についてのチェックは行なわれない。 symlink によって参照される名前を削除すると (それが他にハードリンク (hard link) を持たなけ れば) 実際にファイルが削除される。 この動作が望んだものでない場合は、 link(2) を使用する こと。
関連項目
ln(1), lchown(2), link(2), lstat(2), open(2), readlink(2), rename(2), symlinkat(2), unlink(2), path_resolution(7), symlink(7)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。