symlink - システムコールの説明 - Linux コマンド集 一覧表
- 名前
- 書式
- 説明
- 返り値
- エラー
- 注意
- 準拠
- 関連項目
名前
書式
#include <unistd.h>
int symlink(const char *
oldpath
, const char *
newpath
);
説明
symlink
()は
oldpath
という文字列をファイルの内容として持つ
newpath
というシンボリック・リンク (symbolic link) を作成する。
シンボリック・リンクは実行時に解釈され、
リンクの内容でパスを置き換えて、そのパスを辿ることで、
ファイルやディレクトリに到達する。
シンボリック・リンクはパスの部分に
..
を含むかもしれない。これは (もしリンクの最初に使用された場合は) リンクの
存在するディレクトリの親ディレクトリが参照される。
シンボリック・リンクは (ソフト・リンク (soft link) とも呼ばれ)
存在するファイルを指しているかもしれないし、
存在しないファイルを指しているかもしれない;
後者の場合は壊れたリンク (dangling link) とも呼ばれる。
シンボリック・リンクの許可 (permission) は無意味である;
リンクを追跡する場合には所有権 (ownership) は無視される。
ただし、リンクの削除や名前の変更が要求され、かつリンクが存在する
ディレクトリにスティッキー・ビット (sticky bit)
(
S_ISVTX
)が設定されている場合には、所有権のチェックが行われる。
newpath
が既に存在する場合には上書きはされない
。
返り値
成功した場合には 0 を返す。エラーの場合には -1 を返し、
errno
が適切に設定される。
エラー
-
EACCES
-
newpath
を含んでいるディレクトリへの書き込みが拒否されたか、
newpath
に含まれているディレクトリのどれかに検索許可が与えられていない
(
path_resolution
(2)も参照すること)。
-
EEXIST
-
newpath
が既に存在している。
-
EFAULT
-
oldpath
や
newpath
がアクセス可能なアドレス空間の外を指している。
-
EIO
-
I/O エラーが発生した。
-
ELOOP
-
newpath
を解決する際に遭遇したシンボリック・リンクが多過ぎる。
-
ENAMETOOLONG
-
oldpath
または
newpath
が長過ぎる。
-
ENOENT
-
newpath
に含まれるディレクトリ部分が存在しないか、壊れたリンクであるか、
oldpath
が空文字列である。
-
ENOMEM
-
十分なカーネル (kernel) のメモリーがない。
-
ENOSPC
-
ファイルが含まれているデバイスに新しいディレクトリ・エントリ
(directory entry) を作成するだけの十分な容量がない。
-
ENOTDIR
-
newpath
に含まれるディレクトリ部分が、実際には、ディレクトリではない。
-
EPERM
-
newpath
を含んでいるファイル・システム (file system) が
シンボリック・リンクの作成をサポートしていない。
-
EROFS
-
newpath
が読み込み専用のファイル・システムに存在している。
注意
oldpath
についてのチェックは行なわれない。
symlink によって参照される名前を削除すると (それが他にハード・リンク
(hard link) を持たなければ) 実際にファイルが削除される。もしこの動作が
望んだものでなれば
link
()を使用すること。
準拠
SVr4, 4.3BSD, POSIX.1-2001.
open
(2) を見て、同じ名前の重複と NFS について参照すること。
関連項目
- Linux Tips 関連記事
- Linux Tips(目次)
- Linux ディストリビューション一覧
- rpm のファイル名にあるi386とかi686とは
- 自分のマシンの情報を調べる
- cron の設定
- ssh の root ログインを禁止する
- ssh を、ユーザ、IPでアクセス制限
- 鍵交換方式によるssh接続
- 鍵交換方式によるssh接続( windowsから )
- 複数ファイル内の文字列を置換して上書き保存する
- あるグループをイニシャルグループとするユーザー一覧出力
- 複数ファイルのファイル名を一括変換する
- 連番ファイルをコマンド一発で作成する
- 中身がランダムなファイルを任意のサイズで作成する
- Linux ユーザーアカウントをロック・アンロックする