リンクと名前

システム・プログラム

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/syspro-2000/2000-05-01 /file-link.html
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/
http://www.is.tsukuba.ac.jp/~yas/index-j.html

■リンクと名前

UNIXでは、ファイル名は、枝(リンク)に付いている。UNIXでは、ファイルの 名前には、次の2種類がある。 本名は、ファイルの寿命と関係している。普通のファイルは、1である。複数 の本名を持っているファイルもある。

----------------------------------------------------------------------
% ls -li /usr/bsd/{compress,uncompress,zcat} [←]
1048720 -rwxr-xr-x    1 root     sys        33700   3月 28日 10時57分 /usr/bsd/compress
1048618 lrwxr-xr-x    1 root     sys            8   2月  4日 05時50分 /usr/bsd/uncompress -> compress
1048620 lrwxr-xr-x    1 root     sys            8   2月  4日 05時50分 /usr/bsd/zcat -> compress
% []
----------------------------------------------------------------------

ディレクトリを stat(2) で調べると、リンク数が2以上になっている。 "." と 子ディレクトリの ".." の分だけ増えている。

本名は、open(), creat(), mkdir() の時に作られる。それ以外に、link() シ ステム・コールで増やすことができる。リンクを減らすには、unlink() シス テム・コールを使う。リンクが1つしかないファイルに unlink() を行うと、 ファイルが削除される。

シンボリック・リンクは、別のファイルの名前(シンボル)を含んでいる特殊 なファイルである。シンボリック・リンクは、symlink() システム・コールで 作成することができる。

■練習問題

★練習問題27 リンクの作成

link(2) を使ってリンクを作成するプログラム(ln コマンドに似た動きをす るプログラム)を作りなさい。

★練習問題28 リンクの削除

unlink(2) を使って、リンクを削除するプログラム(rm コマンドと似た動きを するプログラム)を作りなさい。

★練習問題29 リンクの削除

symlink(2) を使って、シンボリック・リンクを作成するプログラム(ln -s と 似た動きをするプログラム)を作りなさい。

★練習問題30 名前の変更

rename(2) を使って、ファイルの名前を変えるするプログラム(mv コマンドと 似た動きをするプログラム)を作りなさい。
↑[もどる] ←[4月24日] ・[5月01日] →[5月08日] [課題]
Last updated: 2000/04/30 21:07:09
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>