[<<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 }