電子・情報工学系/システム情報工学研究科CS専攻 新城 靖 <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~syspro/2005/No8_files/link.html
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~syspro/2005/
http://www.coins.tsukuba.ac.jp/~yas/
次は、3つの実リンクを持っているファイルの例である。
% ls -li /usr/bin/{yppasswd,ypchsh,ypchfn}1つのファイルの実体を、3つの名前でアクセスできる。どれか1つの名前で も残っている限り、ファイルの実体は残る。全ての名前が消された時に ファイルの実体も消される。1089359 -r-xr-xr-x 3 root root 16988 Feb 27 2001 /usr/bin/ypchfn 1089359 -r-xr-xr-x 3 root root 16988 Feb 27 2001 /usr/bin/ypchsh 1089359 -r-xr-xr-x 3 root root 16988 Feb 27 2001 /usr/bin/yppasswd %
![]()
次は、1つの実リンクと2つのシンボリック・リンクを持っているファイルの 例である。
% ls -li /usr/bin/{mdir,mcopy,mtools}1088204 lrwxrwxrwx 1 root root 6 Feb 24 07:18 /usr/bin/mcopy -> mtools 1088209 lrwxrwxrwx 1 root root 6 Feb 24 07:18 /usr/bin/mdir -> mtools 1088317 -rwxr-xr-x 1 root root 139132 Jan 10 2001 /usr/bin/mtools %
![]()
mtools
が消されると、ファイルの実体が消される。mdir
や
mcopy
が消されても、ファイルの実体はそのままである。
シンボリック・リンクは、内部的には別のファイルの名前(シンボル)を含ん でいる特殊なファイルである。open() などのシステムコールでは、自動的に リンクの先の名前に置き換えられる。
シンボリック・リンクは、symlink() システム・コールで作成することができ る。
unlink() システムコールは、普通、一般ユーザでは普通のファイルかシンボ リックリンクに対してしか使えない。ディレクトリに対する実リンクは、 mkdir() や rmdir() の時にシステムが自動的に調整する。