Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       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 oldpathnewpath がアクセス可能なアドレス空間の外を指している。

       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/ に書かれている。