Книга: Программирование для Linux. Профессиональный подход
Листинг 8.9. (print-symlink.с) Отображение адресата символической ссылки
Листинг 8.9. (print-symlink.с) Отображение адресата символической ссылки
#include «errno.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char* argv[]) {
char target_path[256];
char* link_path = argv[1];
/* Попытка чтения адресата символической ссылки. */
int len =
readlink(link_path, target_path, sizeof(target_path));
if (len == -1) {
/* Функция завершилась ошибкой. */
if (errno == EINVAL)
/* Это не символическая ссылка. */
fprintf(stderr, "%s is not a symbolic linkn", link_path);
else
/* Произошла какая-то другая ошибка. */
perror("readlink");
return 1;
} else {
/* Завершаем путевое имя нулевым символом. */
target_path[len] = '';
/* Выводим результат. */
printf("%sn", target_path);
return 0;
}
}
Ниже показано, как создать символическую ссылку и проверить ее с помощью программы print-symlink
:
% ln -s /usr/bin/wc my_link
% ./print-symlink my_link
/usr/bin/wc
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Фрагменты знаний. Ссылки
- Листинг 15.11. Код для загрузки файла с Web-сервера
- 22.4.9 Несколькоадресные рассылки
- Глава 7 Электронные рассылки
- Лекция 11. Ссылки
- 3.1.3. Ссылки
- Листинг 3.1. Конфигурационный файл lilo.conf
- Листинг 3.2. Файл настройки программы inittab
- Листинг 3.3. Файл
- Листинг 3.4. Информация о конфигурации и состоянии сети
- Листинг 4.1. Файл