[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Создание связи с файлом - пример
Этот пример является упрощенной версией команды ln(1). Программа
работает так:
7-10 Системный вызов link(2) создает связь для файла, заданного в
качестве первого аргумента. Связь может находиться в той же или в
другой директории.
Глядя на иллюстрацию на предыдущей странице, представьте, что ваша
текущая директория - это общая родительская директория для directory1
и directory2, и файл с именем name1 в уже существует в directory1.
Затем, в directory2 создается новая связь:
$ link directory1/name1 directory2/name2
Эта программа демонстрируется так:
$ ls -l -i
total 9
11621 -rw-r--r-- 1 imr ustg 96 Jan 3 17:45 data
25799 -rwxr-xr-x 2 imr ustg 3350 Jan 3 17:40 link
$ link data data2
$ ls -l -i
total 10
11621 -rw-r--r-- 2 imr ustg 96 Jan 3 17:45 data
11621 -rw-r--r-- 2 imr ustg 96 Jan 3 17:45 data2
25799 -rwxr-xr-x 2 imr ustg 3350 Jan 3 17:40 link
Первая команда ls(1) выдает файлы в текущей директории вместе с их
inode-номерами. Затем программа-пример используется для создания новой
связи для файла data в той же директории. Вторая команда ls(1)
показывает, что data и data2 ссылаются на один и тот же файл,
поскольку inode-номера одинаковы.
Файл: link.c
СОЗДАНИЕ СВЯЗИ С ФАЙЛОМ - ПРИМЕР
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <stdlib.h>
4
5 main(int argc, char *argv[])
6 {
7 if (link(argv[1], argv[2]) == -1) {
8 perror(argv[0]);
9 exit(1);
10 }
11 exit(0);
12 }